• Linus Torvalds's avatar
    Merge tag 'x86-pasid-2022-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3fd33273
    Linus Torvalds authored
    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
    3fd33273
fork.c 77.2 KB