iommu/vt-d: Make domain_add_dev_info() take struct device
authorDavid Woodhouse <David.Woodhouse@intel.com>
Sun, 9 Mar 2014 23:27:31 +0000 (16:27 -0700)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 24 Mar 2014 14:08:03 +0000 (14:08 +0000)
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/iommu/intel-iommu.c

index 66c2921f6404d6e0078096cd6c63158157c2dc47..2333f36f4866f5d5faaba3490e51b0244bd96bf5 100644 (file)
@@ -2470,25 +2470,24 @@ static int identity_mapping(struct device *dev)
 }
 
 static int domain_add_dev_info(struct dmar_domain *domain,
-                              struct pci_dev *pdev,
-                              int translation)
+                              struct device *dev, int translation)
 {
        struct dmar_domain *ndomain;
        struct intel_iommu *iommu;
        u8 bus, devfn;
        int ret;
 
-       iommu = device_to_iommu(&pdev->dev, &bus, &devfn);
+       iommu = device_to_iommu(dev, &bus, &devfn);
        if (!iommu)
                return -ENODEV;
 
-       ndomain = dmar_insert_dev_info(iommu, bus, devfn, &pdev->dev, domain);
+       ndomain = dmar_insert_dev_info(iommu, bus, devfn, dev, domain);
        if (ndomain != domain)
                return -EBUSY;
 
-       ret = domain_context_mapping(domain, &pdev->dev, translation);
+       ret = domain_context_mapping(domain, dev, translation);
        if (ret) {
-               domain_remove_one_dev_info(domain, &pdev->dev);
+               domain_remove_one_dev_info(domain, dev);
                return ret;
        }
 
@@ -2607,7 +2606,7 @@ static int __init iommu_prepare_static_identity_mapping(int hw)
 
        for_each_pci_dev(pdev) {
                if (iommu_should_identity_map(&pdev->dev, 1)) {
-                       ret = domain_add_dev_info(si_domain, pdev,
+                       ret = domain_add_dev_info(si_domain, &pdev->dev,
                                             hw ? CONTEXT_TT_PASS_THROUGH :
                                                  CONTEXT_TT_MULTI_LEVEL);
                        if (ret) {
@@ -2940,7 +2939,7 @@ static int iommu_no_mapping(struct device *dev)
                 */
                if (iommu_should_identity_map(&pdev->dev, 0)) {
                        int ret;
-                       ret = domain_add_dev_info(si_domain, pdev,
+                       ret = domain_add_dev_info(si_domain, dev,
                                                  hw_pass_through ?
                                                  CONTEXT_TT_PASS_THROUGH :
                                                  CONTEXT_TT_MULTI_LEVEL);
@@ -4201,7 +4200,7 @@ static int intel_iommu_attach_device(struct iommu_domain *domain,
                dmar_domain->agaw--;
        }
 
-       return domain_add_dev_info(dmar_domain, pdev, CONTEXT_TT_MULTI_LEVEL);
+       return domain_add_dev_info(dmar_domain, dev, CONTEXT_TT_MULTI_LEVEL);
 }
 
 static void intel_iommu_detach_device(struct iommu_domain *domain,