iommu/amd: Update iommu_ignore_device
authorSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Wed, 6 Jul 2022 11:38:12 +0000 (17:08 +0530)
committerJoerg Roedel <jroedel@suse.de>
Thu, 7 Jul 2022 07:37:46 +0000 (09:37 +0200)
Start using per PCI segment device table instead of global
device table.

Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
Link: https://lore.kernel.org/r/20220706113825.25582-23-vasant.hegde@amd.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/iommu.c

index 493cda5..90755da 100644 (file)
@@ -413,15 +413,15 @@ static int iommu_init_device(struct amd_iommu *iommu, struct device *dev)
 static void iommu_ignore_device(struct amd_iommu *iommu, struct device *dev)
 {
        struct amd_iommu_pci_seg *pci_seg = iommu->pci_seg;
+       struct dev_table_entry *dev_table = get_dev_table(iommu);
        int devid;
 
-       devid = get_device_id(dev);
+       devid = (get_device_id(dev)) & 0xffff;
        if (devid < 0)
                return;
 
-
        pci_seg->rlookup_table[devid] = NULL;
-       memset(&amd_iommu_dev_table[devid], 0, sizeof(struct dev_table_entry));
+       memset(&dev_table[devid], 0, sizeof(struct dev_table_entry));
 
        setup_aliases(iommu, dev);
 }