From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33280) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBQBR-0005fh-T7 for qemu-devel@nongnu.org; Tue, 22 Dec 2015 11:53:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aBQBQ-0000eR-UY for qemu-devel@nongnu.org; Tue, 22 Dec 2015 11:53:09 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52455) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBQBQ-0000eG-ND for qemu-devel@nongnu.org; Tue, 22 Dec 2015 11:53:08 -0500 Date: Tue, 22 Dec 2015 18:53:05 +0200 From: "Michael S. Tsirkin" Message-ID: <1450803119-4223-11-git-send-email-mst@redhat.com> References: <1450803119-4223-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1450803119-4223-1-git-send-email-mst@redhat.com> Subject: [Qemu-devel] [PULL 10/55] hw/i386: extend pxb query for all PC machines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Eduardo Habkost , Igor Mammedov , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson From: Marcel Apfelbaum Add bus property to PC machines and use it when looking for primary PCI root bus (bus 0). Signed-off-by: Marcel Apfelbaum Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Acked-by: Eduardo Habkost --- include/hw/i386/pc.h | 1 + hw/i386/acpi-build.c | 3 +-- hw/i386/pc.c | 2 +- hw/i386/pc_piix.c | 1 + hw/i386/pc_q35.c | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index beb44ca..bbebf15 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -51,6 +51,7 @@ struct PCMachineState { OnOffAuto vmport; OnOffAuto smm; ram_addr_t below_4g_mem_size, above_4g_mem_size; + PCIBus *bus; }; #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device" diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index eb156cb..a60436b 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -950,8 +950,7 @@ build_ssdt(GArray *table_data, GArray *linker, /* Reserve space for header */ acpi_data_push(ssdt->buf, sizeof(AcpiTableHeader)); - /* Extra PCI root buses are implemented only for i440fx */ - bus = find_i440fx(); + bus = PC_MACHINE(machine)->bus; if (bus) { QLIST_FOREACH(bus, &bus->child, sibling) { uint8_t bus_num = pci_bus_num(bus); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 00b59cd..48aa37a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1167,7 +1167,7 @@ void pc_guest_info_machine_done(Notifier *notifier, void *data) PcGuestInfoState *guest_info_state = container_of(notifier, PcGuestInfoState, machine_done); - PCIBus *bus = find_i440fx(); + PCIBus *bus = PC_MACHINE(qdev_get_machine())->bus; if (bus) { int extra_hosts = 0; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 7d847b2..9654628 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -185,6 +185,7 @@ static void pc_init1(MachineState *machine, pcms->below_4g_mem_size, pcms->above_4g_mem_size, pci_memory, ram_memory); + pcms->bus = pci_bus; } else { pci_bus = NULL; i440fx_state = NULL; diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index 6aaa0ee..b87e7ec 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -181,6 +181,7 @@ static void pc_q35_init(MachineState *machine) qdev_init_nofail(DEVICE(q35_host)); phb = PCI_HOST_BRIDGE(q35_host); host_bus = phb->bus; + pcms->bus = phb->bus; /* create ISA bus */ lpc = pci_create_simple_multifunction(host_bus, PCI_DEVFN(ICH9_LPC_DEV, ICH9_LPC_FUNC), true, -- MST