• Linus Torvalds's avatar
    Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 6734e20e
    Linus Torvalds authored
    Pull arm64 updates from Will Deacon:
     "There's quite a lot of code here, but much of it is due to the
      addition of a new PMU driver as well as some arm64-specific selftests
      which is an area where we've traditionally been lagging a bit.
    
      In terms of exciting features, this includes support for the Memory
      Tagging Extension which narrowly missed 5.9, hopefully allowing
      userspace to run with use-after-free detection in production on CPUs
      that support it. Work is ongoing to integrate the feature with KASAN
      for 5.11.
    
      Another change that I'm excited about (assuming they get the hardware
      right) is preparing the ASID allocator for sharing the CPU page-table
      with the SMMU. Those changes will also come in via Joerg with the
      IOMMU pull.
    
      We do stray outside of our usual directories in a few places, mostly
      due to core changes required by MTE. Although much of this has been
      Acked, there were a couple of places where we unfortunately didn't get
      any review feedback.
    
      Other than that, we ran into a handful of minor conflicts in -next,
      but nothing that should post any issues.
    
      Summary:
    
       - Userspace support for the Memory Tagging Extension introduced by
         Armv8.5. Kernel support (via KASAN) is likely to follow in 5.11.
    
       - Selftests for MTE, Pointer Authentication and FPSIMD/SVE context
         switching.
    
       - Fix and subsequent rewrite of our Spectre mitigations, including
         the addition of support for PR_SPEC_DISABLE_NOEXEC.
    
       - Support for the Armv8.3 Pointer Authentication enhancements.
    
       - Support for ASID pinning, which is required when sharing
         page-tables with the SMMU.
    
       - MM updates, including treating flush_tlb_fix_spurious_fault() as a
         no-op.
    
       - Perf/PMU driver updates, including addition of the ARM CMN PMU
         driver and also support to handle CPU PMU IRQs as NMIs.
    
       - Allow prefetchable PCI BARs to be exposed to userspace using normal
         non-cacheable mappings.
    
       - Implementation of ARCH_STACKWALK for unwinding.
    
       - Improve reporting of unexpected kernel traps due to BPF JIT
         failure.
    
       - Improve robustness of user-visible HWCAP strings and their
         corresponding numerical constants.
    
       - Removal of TEXT_OFFSET.
    
       - Removal of some unused functions, parameters and prototypes.
    
       - Removal of MPIDR-based topology detection in favour of firmware
         description.
    
       - Cleanups to handling of SVE and FPSIMD register state in
         preparation for potential future optimisation of handling across
         syscalls.
    
       - Cleanups to the SDEI driver in preparation for support in KVM.
    
       - Miscellaneous cleanups and refactoring work"
    
    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (148 commits)
      Revert "arm64: initialize per-cpu offsets earlier"
      arm64: random: Remove no longer needed prototypes
      arm64: initialize per-cpu offsets earlier
      kselftest/arm64: Check mte tagged user address in kernel
      kselftest/arm64: Verify KSM page merge for MTE pages
      kselftest/arm64: Verify all different mmap MTE options
      kselftest/arm64: Check forked child mte memory accessibility
      kselftest/arm64: Verify mte tag inclusion via prctl
      kselftest/arm64: Add utilities and a test to validate mte memory
      perf: arm-cmn: Fix conversion specifiers for node type
      perf: arm-cmn: Fix unsigned comparison to less than zero
      arm64: dbm: Invalidate local TLB when setting TCR_EL1.HD
      arm64: mm: Make flush_tlb_fix_spurious_fault() a no-op
      arm64: Add support for PR_SPEC_DISABLE_NOEXEC prctl() option
      arm64: Pull in task_stack_page() to Spectre-v4 mitigation code
      KVM: arm64: Allow patching EL2 vectors even with KASLR is not enabled
      arm64: Get rid of arm64_ssbd_state
      KVM: arm64: Convert ARCH_WORKAROUND_2 to arm64_get_spectre_v4_state()
      KVM: arm64: Get rid of kvm_arm_have_ssbd()
      KVM: arm64: Simplify handling of ARCH_WORKAROUND_2
      ...
    6734e20e
arm.c 37.8 KB