[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 7/8] spapr: Direct all PCI hotplug to host bridge, rat
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PATCH 7/8] spapr: Direct all PCI hotplug to host bridge, rather than P2P bridge |
Date: |
Thu, 23 May 2019 15:29:17 +1000 |
A P2P bridge will attempt to handle the hotplug with SHPC, which doesn't
work in the PAPR environment. Instead we want to direct all PCI hotplug
actions to the PAPR specific host bridge which will use the PAPR hotplug
mechanism.
Signed-off-by: David Gibson <address@hidden>
---
hw/ppc/spapr.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 507fd50dd5..6dd8aaac33 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4094,6 +4094,17 @@ static HotplugHandler
*spapr_get_hotplug_handler(MachineState *machine,
object_dynamic_cast(OBJECT(dev), TYPE_SPAPR_PCI_HOST_BRIDGE)) {
return HOTPLUG_HANDLER(machine);
}
+ if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
+ PCIDevice *pcidev = PCI_DEVICE(dev);
+ PCIBus *root = pci_device_root_bus(pcidev);
+ SpaprPhbState *phb =
+ (SpaprPhbState *)object_dynamic_cast(OBJECT(BUS(root)->parent),
+ TYPE_SPAPR_PCI_HOST_BRIDGE);
+
+ if (phb) {
+ return HOTPLUG_HANDLER(phb);
+ }
+ }
return NULL;
}
--
2.21.0
- Re: [Qemu-ppc] [PATCH 2/8] spapr: Clean up device tree construction for PCI devices, (continued)
[Qemu-ppc] [PATCH 6/8] spapr: Don't use bus number for building DRC ids, David Gibson, 2019/05/23
[Qemu-ppc] [PATCH 8/8] spapr: Allow hot plug/unplug of PCI bridges and devices under PCI bridges, David Gibson, 2019/05/23
[Qemu-ppc] [PATCH 4/8] spapr: Clean up spapr_drc_populate_dt(), David Gibson, 2019/05/23
[Qemu-ppc] [PATCH 7/8] spapr: Direct all PCI hotplug to host bridge, rather than P2P bridge,
David Gibson <=
Re: [Qemu-ppc] [PATCH 1/8] spapr: Clean up device node name generation for PCI devices, Greg Kurz, 2019/05/24
Re: [Qemu-ppc] [PATCH 1/8] spapr: Clean up device node name generation for PCI devices, Michael S. Tsirkin, 2019/05/28