]> git.proxmox.com Git - mirror_qemu.git/commitdiff
PCMachineState: introduce acpi_build_enabled field
authorWei Liu <wei.liu2@citrix.com>
Tue, 1 Nov 2016 17:44:16 +0000 (17:44 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 2 Nov 2016 19:26:12 +0000 (12:26 -0700)
Introduce this field to control whether ACPI build is enabled by a
particular machine or accelerator.

It defaults to true if the machine itself supports ACPI build. Xen
accelerator will disable it because Xen is in charge of building ACPI
tables for the guest.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Tested-by: Sander Eikelenboom <linux@eikelenboom.it>
hw/i386/acpi-build.c
hw/i386/pc.c
include/hw/i386/pc.h
xen-common.c

index 5cd1da9a8778614c26c3f3c1d5089289c41d5422..13cbbde712a29279db51c1328a5d84591511cdc1 100644 (file)
@@ -2953,7 +2953,7 @@ void acpi_setup(void)
         return;
     }
 
-    if (!pcmc->has_acpi_build) {
+    if (!pcms->acpi_build_enabled) {
         ACPI_BUILD_DPRINTF("ACPI build disabled. Bailing out.\n");
         return;
     }
index f56ea0f87bde83698acf4aedde45d48d9d2bd8bc..fbd9aed72b32bd772b718461682cfa110841682f 100644 (file)
@@ -2159,6 +2159,8 @@ static void pc_machine_initfn(Object *obj)
     pcms->vmport = ON_OFF_AUTO_AUTO;
     /* nvdimm is disabled on default. */
     pcms->acpi_nvdimm_state.is_enabled = false;
+    /* acpi build is enabled by default if machine supports it */
+    pcms->acpi_build_enabled = PC_MACHINE_GET_CLASS(pcms)->has_acpi_build;
 }
 
 static void pc_machine_reset(void)
index 98dc7722c398dd217db6a649801ba153b576e332..8eb517f914cabdc1761ee5d1533e98c638888096 100644 (file)
@@ -62,6 +62,8 @@ struct PCMachineState {
 
     AcpiNVDIMMState acpi_nvdimm_state;
 
+    bool acpi_build_enabled;
+
     /* RAM information (sizes, addresses, configuration): */
     ram_addr_t below_4g_mem_size, above_4g_mem_size;
 
index 909976071c243c1f1cd1b7d08cb05cc511c5e89c..bacf962841a54059bbebffcfca1f2a7fc56dad4d 100644 (file)
@@ -9,6 +9,7 @@
  */
 
 #include "qemu/osdep.h"
+#include "hw/i386/pc.h"
 #include "hw/xen/xen_backend.h"
 #include "qmp-commands.h"
 #include "sysemu/char.h"
@@ -114,6 +115,11 @@ static void xen_change_state_handler(void *opaque, int running,
 
 static int xen_init(MachineState *ms)
 {
+    PCMachineState *pcms = PC_MACHINE(ms);
+
+    /* Disable ACPI build because Xen handles it */
+    pcms->acpi_build_enabled = false;
+
     xen_xc = xc_interface_open(0, 0, 0);
     if (xen_xc == NULL) {
         xen_pv_printf(NULL, 0, "can't open xen interface\n");