On Tue, Jul 08, 2025 at 04:40:50PM +0100, Shameer Kolothum wrote: > @@ -2909,6 +2909,19 @@ static void pci_device_get_iommu_bus_devfn(PCIDevice > *dev, > } > } > > + /* > + * When multiple PCI Express Root Buses are defined using pxb-pcie, > + * the IOMMU configuration may be specific to each root bus. However, > + * pxb-pcie acts as a special root complex whose parent is > effectively > + * the default root complex(pcie.0). Ensure that we retrieve the > + * correct IOMMU ops(if any) in such cases. > + */ > + if (pci_bus_is_express(iommu_bus) && pci_bus_is_root(iommu_bus)) { > + if (!iommu_bus->iommu_per_bus && parent_bus->iommu_per_bus) { > + break; Mind elaborating why the current bus must unset iommu_per_bus while its parent sets iommu_per_bus?
My understanding is that for a pxb-pcie we should set iommu_per_bus but for its parent (the default root complex) we should unset its iommu_per_bus? Thanks Nicolin