From: Lu Baolu <baolu.lu@linux.intel.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
Kevin Tian <kevin.tian@intel.com>, Yi Liu <yi.l.liu@intel.com>,
iommu@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: [PATCH 06/13] iommu/vt-d: Add iommu_domain_did() to get did
Date: Fri, 8 Nov 2024 10:13:57 +0800 [thread overview]
Message-ID: <20241108021406.173972-7-baolu.lu@linux.intel.com> (raw)
In-Reply-To: <20241108021406.173972-1-baolu.lu@linux.intel.com>
From: Yi Liu <yi.l.liu@intel.com>
domain_id_iommu() does not support SVA type and identity type domains.
Add iommu_domain_did() to support all domain types.
Signed-off-by: Yi Liu <yi.l.liu@intel.com>
Link: https://lore.kernel.org/r/20241107122234.7424-7-yi.l.liu@intel.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
drivers/iommu/intel/iommu.h | 16 ++++++++++++++++
drivers/iommu/intel/pasid.h | 7 -------
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/drivers/iommu/intel/iommu.h b/drivers/iommu/intel/iommu.h
index df0261e03fad..cdca7d5061a7 100644
--- a/drivers/iommu/intel/iommu.h
+++ b/drivers/iommu/intel/iommu.h
@@ -806,6 +806,13 @@ static inline struct dmar_domain *to_dmar_domain(struct iommu_domain *dom)
return container_of(dom, struct dmar_domain, domain);
}
+/*
+ * Domain ID reserved for pasid entries programmed for first-level
+ * only and pass-through transfer modes.
+ */
+#define FLPT_DEFAULT_DID 1
+#define NUM_RESERVED_DID 2
+
/* Retrieve the domain ID which has allocated to the domain */
static inline u16
domain_id_iommu(struct dmar_domain *domain, struct intel_iommu *iommu)
@@ -816,6 +823,15 @@ domain_id_iommu(struct dmar_domain *domain, struct intel_iommu *iommu)
return info->did;
}
+static inline u16
+iommu_domain_did(struct iommu_domain *domain, struct intel_iommu *iommu)
+{
+ if (domain->type == IOMMU_DOMAIN_SVA ||
+ domain->type == IOMMU_DOMAIN_IDENTITY)
+ return FLPT_DEFAULT_DID;
+ return domain_id_iommu(to_dmar_domain(domain), iommu);
+}
+
/*
* 0: readable
* 1: writable
diff --git a/drivers/iommu/intel/pasid.h b/drivers/iommu/intel/pasid.h
index 06d1f7006d01..082f4fe20216 100644
--- a/drivers/iommu/intel/pasid.h
+++ b/drivers/iommu/intel/pasid.h
@@ -22,13 +22,6 @@
#define is_pasid_enabled(entry) (((entry)->lo >> 3) & 0x1)
#define get_pasid_dir_size(entry) (1 << ((((entry)->lo >> 9) & 0x7) + 7))
-/*
- * Domain ID reserved for pasid entries programmed for first-level
- * only and pass-through transfer modes.
- */
-#define FLPT_DEFAULT_DID 1
-#define NUM_RESERVED_DID 2
-
#define PASID_FLAG_NESTED BIT(1)
#define PASID_FLAG_PAGE_SNOOP BIT(2)
--
2.43.0
next prev parent reply other threads:[~2024-11-08 2:15 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 2:13 [PATCH 00/13] [PULL REQUEST] Intel IOMMU updates for v6.13 (2nd Lu Baolu
2024-11-08 2:13 ` [PATCH 01/13] iommu: Pass old domain to set_dev_pasid op Lu Baolu
2024-11-08 2:13 ` [PATCH 02/13] iommu/vt-d: Add a helper to flush cache for updating present pasid entry Lu Baolu
2024-11-08 2:13 ` [PATCH 03/13] iommu/vt-d: Refactor the pasid setup helpers Lu Baolu
2024-11-08 2:13 ` [PATCH 04/13] iommu/vt-d: Add pasid replace helpers Lu Baolu
2024-11-08 2:13 ` [PATCH 05/13] iommu/vt-d: Consolidate the struct dev_pasid_info add/remove Lu Baolu
2024-11-08 2:13 ` Lu Baolu [this message]
2024-11-08 2:13 ` [PATCH 07/13] iommu/vt-d: Make intel_iommu_set_dev_pasid() to handle domain replacement Lu Baolu
2024-11-08 2:13 ` [PATCH 08/13] iommu/vt-d: Limit intel_iommu_set_dev_pasid() for paging domain Lu Baolu
2024-11-08 2:14 ` [PATCH 09/13] iommu/vt-d: Make intel_svm_set_dev_pasid() support domain replacement Lu Baolu
2024-11-08 2:14 ` [PATCH 10/13] iommu/vt-d: Make identity_domain_set_dev_pasid() to handle " Lu Baolu
2024-11-08 2:14 ` [PATCH 11/13] iommu/vt-d: Add set_dev_pasid callback for nested domain Lu Baolu
2024-11-08 2:14 ` [PATCH 12/13] iommu/arm-smmu-v3: Make set_dev_pasid() op support replace Lu Baolu
2024-11-08 2:14 ` [PATCH 13/13] iommu: Make set_dev_pasid op support domain replacement Lu Baolu
2024-11-08 13:05 ` [PATCH 00/13] [PULL REQUEST] Intel IOMMU updates for v6.13 (2nd Joerg Roedel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241108021406.173972-7-baolu.lu@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=yi.l.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.