Merge tag 'x86-pasid-2022-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 PASID support from Thomas Gleixner: "Reenable ENQCMD/PASID support: - Simplify the PASID handling to allocate the PASID once, associate it to the mm of a process and free it on mm_exit(). The previous attempt of refcounted PASIDs and dynamic alloc()/free() turned out to be error prone and too complex. The PASID space is 20bits, so the case of resource exhaustion is a pure academic concern. - Populate the PASID MSR on demand via #GP to avoid racy updates via IPIs. - Reenable ENQCMD and let objtool check for the forbidden usage of ENQCMD in the kernel. - Update the documentation for Shared Virtual Addressing accordingly" * tag 'x86-pasid-2022-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: Documentation/x86: Update documentation for SVA (Shared Virtual Addressing) tools/objtool: Check for use of the ENQCMD instruction in the kernel x86/cpufeatures: Re-enable ENQCMD x86/traps: Demand-populate PASID MSR via #GP sched: Define and initialize a flag to identify valid PASID in the task x86/fpu: Clear PASID when copying fpstate iommu/sva: Assign a PASID to mm on PASID allocation and free it on mm exit kernel/fork: Initialize mm's PASID iommu/ioasid: Introduce a helper to check for valid PASIDs mm: Change CONFIG option for mm->pasid field iommu/sva: Rename CONFIG_IOMMU_SVA_LIB to CONFIG_IOMMU_SVA
Showing
- Documentation/x86/sva.rst 41 additions, 12 deletionsDocumentation/x86/sva.rst
- arch/x86/include/asm/disabled-features.h 5 additions, 2 deletionsarch/x86/include/asm/disabled-features.h
- arch/x86/kernel/fpu/core.c 7 additions, 0 deletionsarch/x86/kernel/fpu/core.c
- arch/x86/kernel/traps.c 55 additions, 0 deletionsarch/x86/kernel/traps.c
- drivers/iommu/Kconfig 3 additions, 3 deletionsdrivers/iommu/Kconfig
- drivers/iommu/Makefile 1 addition, 1 deletiondrivers/iommu/Makefile
- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c 1 addition, 4 deletionsdrivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
- drivers/iommu/intel/Kconfig 1 addition, 1 deletiondrivers/iommu/intel/Kconfig
- drivers/iommu/intel/iommu.c 2 additions, 2 deletionsdrivers/iommu/intel/iommu.c
- drivers/iommu/intel/svm.c 0 additions, 9 deletionsdrivers/iommu/intel/svm.c
- drivers/iommu/ioasid.c 4 additions, 35 deletionsdrivers/iommu/ioasid.c
- drivers/iommu/iommu-sva-lib.c 12 additions, 27 deletionsdrivers/iommu/iommu-sva-lib.c
- drivers/iommu/iommu-sva-lib.h 3 additions, 4 deletionsdrivers/iommu/iommu-sva-lib.h
- include/linux/ioasid.h 11 additions, 10 deletionsinclude/linux/ioasid.h
- include/linux/mm_types.h 1 addition, 1 deletioninclude/linux/mm_types.h
- include/linux/sched.h 3 additions, 0 deletionsinclude/linux/sched.h
- include/linux/sched/mm.h 26 additions, 0 deletionsinclude/linux/sched/mm.h
- kernel/fork.c 7 additions, 8 deletionskernel/fork.c
- mm/init-mm.c 4 additions, 0 deletionsmm/init-mm.c
- tools/objtool/arch/x86/decode.c 10 additions, 1 deletiontools/objtool/arch/x86/decode.c
Please register or sign in to comment