From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lu Baolu Subject: [RFC PATCH v2 06/10] iommu/vt-d: Return ID associated with an auxiliary domain Date: Thu, 30 Aug 2018 12:09:18 +0800 Message-ID: <20180830040922.30426-7-baolu.lu@linux.intel.com> References: <20180830040922.30426-1-baolu.lu@linux.intel.com> Return-path: In-Reply-To: <20180830040922.30426-1-baolu.lu@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org To: Joerg Roedel , David Woodhouse , Alex Williamson , Kirti Wankhede Cc: ashok.raj@intel.com, sanjay.k.kumar@intel.com, jacob.jun.pan@intel.com, kevin.tian@intel.com, Jean-Philippe Brucker , yi.l.liu@intel.com, yi.y.sun@intel.com, peterx@redhat.com, tiwei.bie@intel.com, iommu@lists.linux-foundation.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Lu Baolu , Jacob Pan List-Id: iommu@lists.linux-foundation.org This adds support to return the default pasid associated with an auxiliary domain. The PCI device which is bound with this domain should use this value as the pasid for all DMA requests of the subset of device which is isolated and protected with this domain. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Cc: Liu Yi L Signed-off-by: Lu Baolu --- drivers/iommu/intel-iommu.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 784bd496f316..1ba39f120a38 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -5544,6 +5544,14 @@ static void intel_iommu_disable_auxd(struct device *dev) spin_unlock_irqrestore(&device_domain_lock, flags); } +static int intel_iommu_auxd_id(struct iommu_domain *domain) +{ + struct dmar_domain *dmar_domain = to_dmar_domain(domain); + + return dmar_domain->default_pasid > 0 ? + dmar_domain->default_pasid : -EINVAL; +} + const struct iommu_ops intel_iommu_ops = { .capable = intel_iommu_capable, .domain_alloc = intel_iommu_domain_alloc, @@ -5560,6 +5568,7 @@ const struct iommu_ops intel_iommu_ops = { .device_group = pci_device_group, .enable_auxd = intel_iommu_enable_auxd, .disable_auxd = intel_iommu_disable_auxd, + .auxd_id = intel_iommu_auxd_id, .pgsize_bitmap = INTEL_IOMMU_PGSIZES, }; -- 2.17.1