Currently sPAPR always creates a primary PCI host bridge for emulated PCI devices. However, because the platform supports native virtual IO, and can also support multiple independent PCI host bridges, it's quite often useful to disable the primary bridge for debugging purposes.
This patch, therefore, makes the code cope more gracefully with a missing primary host bridge. Signed-off-by: Alexey Kardashevskiy <[email protected]> Signed-off-by: David Gibson <[email protected]> --- hw/ppc/spapr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index c96ac81..d07c74a 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -732,7 +732,7 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args) const char *boot_device = args->boot_device; PowerPCCPU *cpu; CPUPPCState *env; - PCIHostState *phb; + PCIHostState *phb = NULL; int i; MemoryRegion *sysmem = get_system_memory(); MemoryRegion *ram = g_new(MemoryRegion, 1); @@ -898,11 +898,11 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args) } /* Graphics */ - if (spapr_vga_init(phb->bus)) { + if (phb && spapr_vga_init(phb->bus)) { spapr->has_graphics = true; } - if (usb_enabled(spapr->has_graphics)) { + if (phb && usb_enabled(spapr->has_graphics)) { pci_create_simple(phb->bus, -1, "pci-ohci"); if (spapr->has_graphics) { usbdevice_create("keyboard"); -- 1.7.10.4
