summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2014-03-09 16:27:31 -0700
committerDavid Woodhouse <David.Woodhouse@intel.com>2014-03-24 14:08:03 +0000
commit5913c9bf0efecfa869375af8b4619529d3464038 (patch)
treef7f77190d22cdf6fe343916a64e1ccb59ca8e0f6 /drivers
parentbf9c9eda718bd56dde772270d117a8ef51bcea7e (diff)
downloadop-kernel-dev-5913c9bf0efecfa869375af8b4619529d3464038.zip
op-kernel-dev-5913c9bf0efecfa869375af8b4619529d3464038.tar.gz
iommu/vt-d: Make domain_add_dev_info() take struct device
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/iommu/intel-iommu.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 66c2921..2333f36 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -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,
OpenPOWER on IntegriCloud