Allow specification of the domain-id for the new domain.
This patch only adds a new function iommu_attach_domain_with_id, it is like
the function iommu_attach_domain(), only adding a parameter "did".

Bill Sumner:
    (In older versions) Add new 'did' parameter to iommu_attach_domain();
    The caller of this function.

Li, Zhenhua:
    New function iommu_attach_domain_with_id(), instead of updating function
    iommu_attach_domain();

Signed-off-by: Bill Sumner <billsumnerli...@gmail.com>
Signed-off-by: Li, Zhen-Hua <zhen-h...@hp.com>
---
 drivers/iommu/intel-iommu.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 68d43be..cb9d6cc 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -1552,6 +1552,16 @@ static int iommu_attach_domain(struct dmar_domain 
*domain,
        return num;
 }
 
+static int iommu_attach_domain_with_id(struct dmar_domain *domain,
+                              struct intel_iommu *iommu,
+                              int domain_number)
+{
+       if (domain_number >= 0)
+               return domain_number;
+
+       return iommu_attach_domain(domain, iommu);
+}
+
 static int iommu_attach_vm_domain(struct dmar_domain *domain,
                                  struct intel_iommu *iommu)
 {
@@ -2220,6 +2230,7 @@ static struct dmar_domain *get_domain_for_dev(struct 
device *dev, int gaw)
        u16 dma_alias;
        unsigned long flags;
        u8 bus, devfn;
+       int did = -1;   /* Default to "no domain_id supplied" */
 
        domain = find_domain(dev);
        if (domain)
@@ -2253,7 +2264,7 @@ static struct dmar_domain *get_domain_for_dev(struct 
device *dev, int gaw)
        domain = alloc_domain(0);
        if (!domain)
                return NULL;
-       domain->id = iommu_attach_domain(domain, iommu);
+       domain->id = iommu_attach_domain_with_id(domain, iommu, did);
        if (domain->id < 0) {
                free_domain_mem(domain);
                return NULL;
-- 
2.0.0-rc0

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to