[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v6 2/2] amd/iommu: skip bridge devices when updating IOMMU page tables
Bridges are not behind an IOMMU, and are already special cased and skipped in amd_iommu_add_device. Apply the same special casing when updating page tables. This is required or else update_paging_mode will fail and return an error to the caller (amd_iommu_{un}map_page) which will destroy the domain. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Cc: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx> Cc: Brian Woods <brian.woods@xxxxxxx> --- Changes since v5: - Remove the hardware domain check. Changes since v4: - Invert condition order so they match the order in amd_iommu_add_device. - Expand commit message to spell out why this is required. --- xen/drivers/passthrough/amd/iommu_map.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xen/drivers/passthrough/amd/iommu_map.c b/xen/drivers/passthrough/amd/iommu_map.c index c1daba8422..e4904bb3c5 100644 --- a/xen/drivers/passthrough/amd/iommu_map.c +++ b/xen/drivers/passthrough/amd/iommu_map.c @@ -612,6 +612,9 @@ static int update_paging_mode(struct domain *d, unsigned long dfn) /* Update device table entries using new root table and paging mode */ for_each_pdev( d, pdev ) { + if ( pdev->type == DEV_TYPE_PCI_HOST_BRIDGE ) + continue; + bdf = PCI_BDF2(pdev->bus, pdev->devfn); iommu = find_iommu_for_device(pdev->seg, bdf); if ( !iommu ) -- 2.19.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |