Messages in this thread Patch in this message | | | From | Tina Zhang <> | Subject | [RFC PATCH 3/6] iommu: Introduce struct iommu_mm_data | Date | Fri, 7 Jul 2023 09:34:38 +0800 |
| |
To make sva domain 1:1 with mm pasid, mm needs to keep reference to the sva domain as well as keeping the information of mm pasid. Introduce struct iommu_mm_data to wrap the information up.
When a process is created, the mm pasid is initialized as IOMMU_PASID_ INVALID. The default_iommu_mms is introduced to initialize an mm pasid with that default value.
Signed-off-by: Tina Zhang <tina.zhang@intel.com> --- drivers/iommu/iommu.c | 2 ++ include/linux/iommu.h | 7 +++++++ 2 files changed, 9 insertions(+)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index f1dcfa3f1a1b4..35fa1c1b12826 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -83,6 +83,8 @@ static const char * const iommu_group_resv_type_string[] = { [IOMMU_RESV_SW_MSI] = "msi", }; +struct iommu_mm_data default_iommu_mm = { IOMMU_PASID_INVALID, NULL }; + #define IOMMU_CMD_LINE_DMA_API BIT(0) #define IOMMU_CMD_LINE_STRICT BIT(1) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index d39e647219eb8..20135912584ba 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -42,6 +42,8 @@ struct iommu_sva; struct iommu_fault_event; struct iommu_dma_cookie; +extern struct iommu_mm_data default_iommu_mm; + /* iommu fault flags */ #define IOMMU_FAULT_READ 0x0 #define IOMMU_FAULT_WRITE 0x1 @@ -664,6 +666,11 @@ struct iommu_sva { struct iommu_domain *domain; }; +struct iommu_mm_data { + u32 pasid; + struct iommu_domain *sva_domain; +}; + int iommu_fwspec_init(struct device *dev, struct fwnode_handle *iommu_fwnode, const struct iommu_ops *ops); void iommu_fwspec_free(struct device *dev); -- 2.34.1
| |