On Fri, May 02, 2025 at 11:27:02AM +0100, Shameer Kolothum wrote: > Although this change does not affect functionality at present, it lays > the groundwork for enabling user-created SMMUv3 devices in > future patches > > Signed-off-by: Shameer Kolothum <shameerali.kolothum.th...@huawei.com>
Reviewed-by: Nicolin Chen <nicol...@nvidia.com> With some nits: > --- > hw/arm/smmuv3.c | 26 ++++++++++++++++++++++++++ > hw/arm/virt.c | 3 ++- > 2 files changed, 28 insertions(+), 1 deletion(-) > > diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c > index ab67972353..605de9b721 100644 > --- a/hw/arm/smmuv3.c > +++ b/hw/arm/smmuv3.c > @@ -24,6 +24,7 @@ > #include "hw/qdev-properties.h" > #include "hw/qdev-core.h" > #include "hw/pci/pci.h" > +#include "hw/pci/pci_bridge.h" Could probably replace the pci.h since pci_bridge.h includes it. > +static int smmuv3_pcie_bus(Object *obj, void *opaque) > +{ > + DeviceState *d = opaque; > + PCIBus *bus; > + > + if (!object_dynamic_cast(obj, TYPE_PCI_HOST_BRIDGE)) { > + return 0; > + } > + > + bus = PCI_HOST_BRIDGE(obj)->bus; > + if (d->parent_bus && !strcmp(bus->qbus.name, d->parent_bus->name)) { > + object_property_set_link(OBJECT(d), "primary-bus", OBJECT(bus), > + &error_abort); > + /* Return non-zero as we got the bus and don't need further > iteration.*/ Missing a space behind the '.' > + return 1; > + } > + return 0; > +} > @@ -1442,7 +1443,7 @@ static void create_smmu(const VirtMachineState *vms, > } > object_property_set_link(OBJECT(dev), "primary-bus", OBJECT(bus), > &error_abort); > - sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); > + qdev_realize_and_unref(dev, &bus->qbus, &error_fatal); Could add a line of note in the commit message for this change?