OSDN Git Service

iommu/vt-d: Match segment number when searching for dev_iotlb capable devices
authorJiang Liu <jiang.liu@linux.intel.com>
Fri, 11 Jul 2014 06:19:25 +0000 (14:19 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 23 Jul 2014 14:04:46 +0000 (16:04 +0200)
For virtual machine and static identity domains, there may be devices
from different PCI segments associated with the same domain.
So function iommu_support_dev_iotlb() should also match PCI segment
number (iommu unit) when searching for dev_iotlb capable devices.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel-iommu.c

index 3664d0d..147ab1c 100644 (file)
@@ -1272,7 +1272,8 @@ iommu_support_dev_iotlb (struct dmar_domain *domain, struct intel_iommu *iommu,
 
        spin_lock_irqsave(&device_domain_lock, flags);
        list_for_each_entry(info, &domain->devices, link)
-               if (info->bus == bus && info->devfn == devfn) {
+               if (info->iommu == iommu && info->bus == bus &&
+                   info->devfn == devfn) {
                        found = 1;
                        break;
                }