Patchwork acpi-build: disable with -no-acpi

login
register
mail settings
Submitter Michael S. Tsirkin
Date Nov. 7, 2013, 12:18 p.m.
Message ID <20131107121805.GA2069@redhat.com>
Download mbox | patch
Permalink /patch/289306/
State New
Headers show

Comments

Michael S. Tsirkin - Nov. 7, 2013, 12:18 p.m.
QEMU will currently crash if started with -no-acpi flag
since acpi build code probes the PM device which isn't present
in this configuration.

To fix, don't expose ACPI tables to guest when acpi has been
disabled from command line.

Fixes LP# 1248854
https://bugs.launchpad.net/qemu/+bug/1248854

Reported-by: chao zhou <chao.zhou@intel.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/acpi-build.c | 5 +++++
 1 file changed, 5 insertions(+)
Gerd Hoffmann - Nov. 7, 2013, 1:03 p.m.
On Do, 2013-11-07 at 14:18 +0200, Michael S. Tsirkin wrote:
> +    if (!acpi_enabled) {
> +        ACPI_BUILD_DPRINTF(3, "ACPI disabled. Bailing out.\n");
> +        return;
> +    }

Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>

cheers,
  Gerd
Michael S. Tsirkin - Nov. 7, 2013, 1:19 p.m.
On Thu, Nov 07, 2013 at 02:03:00PM +0100, Gerd Hoffmann wrote:
> On Do, 2013-11-07 at 14:18 +0200, Michael S. Tsirkin wrote:
> > +    if (!acpi_enabled) {
> > +        ACPI_BUILD_DPRINTF(3, "ACPI disabled. Bailing out.\n");
> > +        return;
> > +    }
> 
> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>

Apropos, long term if someone's inclined it's possible to look at
enabling acpi on stripped down systems without pm or pci.

Probably not a high priority project ...

> cheers,
>   Gerd
>

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 6cfa044..486e705 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1182,6 +1182,11 @@  void acpi_setup(PcGuestInfo *guest_info)
         return;
     }
 
+    if (!acpi_enabled) {
+        ACPI_BUILD_DPRINTF(3, "ACPI disabled. Bailing out.\n");
+        return;
+    }
+
     build_state = g_malloc0(sizeof *build_state);
 
     build_state->guest_info = guest_info;