From c29dd0034deafc9772eb256f7b4cea16c5bffd65 Mon Sep 17 00:00:00 2001 From: Cédric Le Goater Date: Wed, 12 Jan 2022 11:28:27 +0100 Subject: ppc/pnv: Reparent user created PHB3 devices to the PnvChip The powernv machine uses the object hierarchy to populate the device tree and each device should be parented to the chip it belongs to. This is not the case for user created devices which are parented to the container "/unattached". Make sure a PHB3 device is parented to its chip by reparenting the object if necessary. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Frederic Barrat Signed-off-by: Cédric Le Goater Message-Id: <20220105212338.49899-8-danielhb413@gmail.com> Signed-off-by: Cédric Le Goater --- hw/pci-host/pnv_phb3.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'hw/pci-host/pnv_phb3.c') diff --git a/hw/pci-host/pnv_phb3.c b/hw/pci-host/pnv_phb3.c index 1ebe43df5d..a52aedcad3 100644 --- a/hw/pci-host/pnv_phb3.c +++ b/hw/pci-host/pnv_phb3.c @@ -998,6 +998,12 @@ static void pnv_phb3_realize(DeviceState *dev, Error **errp) error_setg(errp, "invalid chip id: %d", phb->chip_id); return; } + + /* + * Reparent user created devices to the chip to build + * correctly the device tree. + */ + pnv_chip_parent_fixup(phb->chip, OBJECT(phb), phb->phb_id); } if (phb->phb_id >= PNV_CHIP_GET_CLASS(phb->chip)->num_phbs) { -- cgit v1.2.3-55-g7522