From c99cb18eeb8bca145ee260a507ccce6775a6d260 Mon Sep 17 00:00:00 2001 From: Marcel Apfelbaum Date: Sun, 17 Jul 2016 19:53:11 +0300 Subject: hw/acpi: fix a DSDT table issue when a pxb is present. PXBs do not support hotplug so they don't have a PCNT function. Since the PXB's PCI root-bus is a child bus of bus 0, the build_dsdt code will add a call to the corresponding PCNT function. Fix this by skipping the PCNT call for the above case. While at it skip also PCIe child buses. Reported-by: Igor Mammedov Signed-off-by: Marcel Apfelbaum Tested-by: Laszlo Ersek Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-build.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 77c40d9..5c0d643 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -600,6 +600,10 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus, QLIST_FOREACH(sec, &bus->child, sibling) { int32_t devfn = sec->parent_dev->devfn; + if (pci_bus_is_root(sec) || pci_bus_is_express(sec)) { + continue; + } + aml_append(method, aml_name("^S%.02X.PCNT", devfn)); } } -- cgit v1.1