This series tries to address: https://bugzilla.kernel.org/show_bug.cgi?id=44881 Where pci_find_upstream_pcie_bridge() gets lost trying to find the upstream PCIe-to-PCI bridge for a device because the bridge doesn't expose a PCIe capability. To do this, we add a iommu_pci_is_pcie_bridge function which includes a quirk to look to the next upstream device as a sanity check. We can then replace pci_find_upstream_pcie_bridge with a function that's a bit more generic and less tied to intel-iommu eccentricities. v2 uses the same logic as v1, but moves the search and match code to IOMMU-core since PCI-core doesn't want it. v1 has several reports from users that this solves the problem they have in the above bz. Thanks, Alex --- Alex Williamson (2): iommu: Quirked PCIe bridge test and search function intel-iommu: Convert to iommu_pci_find_upstream + iommu_pci_is_pcie_bridge drivers/iommu/Kconfig | 5 ++ drivers/iommu/Makefile | 1 drivers/iommu/intel-iommu.c | 77 ++++++++++++++++++++++------------- drivers/iommu/intel_irq_remapping.c | 15 +++++-- drivers/iommu/pci.c | 69 +++++++++++++++++++++++++++++++ drivers/iommu/pci.h | 23 ++++++++++ 6 files changed, 157 insertions(+), 33 deletions(-) create mode 100644 drivers/iommu/pci.c -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html