diff options
author | Jason Gunthorpe <jgg@nvidia.com> | 2023-10-27 08:05:20 +0800 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2023-12-12 10:11:27 +0100 |
commit | 8f23f5dba6b4693448144bde4dd6f537543442c2 (patch) | |
tree | 2d3c317c082ccbd7b038ccfb7ed22cfcc7679d0a /mm/init-mm.c | |
parent | 61f054f3c8a6d6081e078e93aba144760aed17c9 (diff) | |
download | lwn-8f23f5dba6b4693448144bde4dd6f537543442c2.tar.gz lwn-8f23f5dba6b4693448144bde4dd6f537543442c2.zip |
iommu: Change kconfig around IOMMU_SVA
Linus suggested that the kconfig here is confusing:
https://lore.kernel.org/all/CAHk-=wgUiAtiszwseM1p2fCJ+sC4XWQ+YN4TanFhUgvUqjr9Xw@mail.gmail.com/
Let's break it into three kconfigs controlling distinct things:
- CONFIG_IOMMU_MM_DATA controls if the mm_struct has the additional
fields for the IOMMU. Currently only PASID, but later patches store
a struct iommu_mm_data *
- CONFIG_ARCH_HAS_CPU_PASID controls if the arch needs the scheduling bit
for keeping track of the ENQCMD instruction. x86 will select this if
IOMMU_SVA is enabled
- IOMMU_SVA controls if the IOMMU core compiles in the SVA support code
for iommu driver use and the IOMMU exported API
This way ARM will not enable CONFIG_ARCH_HAS_CPU_PASID
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20231027000525.1278806-2-tina.zhang@intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'mm/init-mm.c')
-rw-r--r-- | mm/init-mm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/init-mm.c b/mm/init-mm.c index cfd367822cdd..c52dc2740a3d 100644 --- a/mm/init-mm.c +++ b/mm/init-mm.c @@ -44,7 +44,7 @@ struct mm_struct init_mm = { #endif .user_ns = &init_user_ns, .cpu_bitmap = CPU_BITS_NONE, -#ifdef CONFIG_IOMMU_SVA +#ifdef CONFIG_IOMMU_MM_DATA .pasid = IOMMU_PASID_INVALID, #endif INIT_MM_CONTEXT(init_mm) |