• Linus Torvalds's avatar
    Merge tag 'x86_pasid_for_5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac74075e
    Linus Torvalds authored
    Pull x86 PASID updates from Borislav Petkov:
     "Initial support for sharing virtual addresses between the CPU and
      devices which doesn't need pinning of pages for DMA anymore.
    
      Add support for the command submission to devices using new x86
      instructions like ENQCMD{,S} and MOVDIR64B. In addition, add support
      for process address space identifiers (PASIDs) which are referenced by
      those command submission instructions along with the handling of the
      PASID state on context switch as another extended state.
    
      Work by Fenghua Yu, Ashok Raj, Yu-cheng Yu and Dave Jiang"
    
    * tag 'x86_pasid_for_5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86/asm: Add an enqcmds() wrapper for the ENQCMDS instruction
      x86/asm: Carve out a generic movdir64b() helper for general usage
      x86/mmu: Allocate/free a PASID
      x86/cpufeatures: Mark ENQCMD as disabled when configured out
      mm: Add a pasid member to struct mm_struct
      x86/msr-index: Define an IA32_PASID MSR
      x86/fpu/xstate: Add supervisor PASID state for ENQCMD
      x86/cpufeatures: Enumerate ENQCMD and ENQCMDS instructions
      Documentation/x86: Add documentation for SVA (Shared Virtual Addressing)
      iommu/vt-d: Change flags type to unsigned int in binding mm
      drm, iommu: Change type of pasid to u32
    ac74075e
iommu.c 158 KB