> From: Lu Baolu [mailto:baolu...@linux.intel.com] > Sent: Thursday, August 30, 2018 9:35 AM > > So that the pasid related info, such as the pasid table and the > maximum of pasid could be used during setting up scalable mode > context. > > Cc: Ashok Raj <ashok....@intel.com> > Cc: Jacob Pan <jacob.jun....@linux.intel.com> > Cc: Kevin Tian <kevin.t...@intel.com> > Cc: Liu Yi L <yi.l....@intel.com> > Signed-off-by: Lu Baolu <baolu...@linux.intel.com> > Reviewed-by: Ashok Raj <ashok....@intel.com>
Reviewed-by: Kevin Tian <kevin.t...@intel.com> > --- > drivers/iommu/intel-iommu.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index c3bf2ccf094d..33642dd3d6ba 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -1942,6 +1942,7 @@ static void domain_exit(struct dmar_domain > *domain) > > static int domain_context_mapping_one(struct dmar_domain *domain, > struct intel_iommu *iommu, > + struct pasid_table *table, > u8 bus, u8 devfn) > { > u16 did = domain->iommu_did[iommu->seq_id]; > @@ -2064,6 +2065,7 @@ static int domain_context_mapping_one(struct > dmar_domain *domain, > struct domain_context_mapping_data { > struct dmar_domain *domain; > struct intel_iommu *iommu; > + struct pasid_table *table; > }; > > static int domain_context_mapping_cb(struct pci_dev *pdev, > @@ -2072,25 +2074,31 @@ static int domain_context_mapping_cb(struct > pci_dev *pdev, > struct domain_context_mapping_data *data = opaque; > > return domain_context_mapping_one(data->domain, data- > >iommu, > - PCI_BUS_NUM(alias), alias & 0xff); > + data->table, PCI_BUS_NUM(alias), > + alias & 0xff); > } > > static int > domain_context_mapping(struct dmar_domain *domain, struct device > *dev) > { > + struct domain_context_mapping_data data; > + struct pasid_table *table; > struct intel_iommu *iommu; > u8 bus, devfn; > - struct domain_context_mapping_data data; > > iommu = device_to_iommu(dev, &bus, &devfn); > if (!iommu) > return -ENODEV; > > + table = intel_pasid_get_table(dev); > + > if (!dev_is_pci(dev)) > - return domain_context_mapping_one(domain, iommu, bus, > devfn); > + return domain_context_mapping_one(domain, iommu, > table, > + bus, devfn); > > data.domain = domain; > data.iommu = iommu; > + data.table = table; > > return pci_for_each_dma_alias(to_pci_dev(dev), > &domain_context_mapping_cb, &data); > -- > 2.17.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu