[PATCH v4 0/2] arm64: Support Enhanced PAN

Vladimir Murzin vladimir.murzin at arm.com
Fri Mar 12 17:38:09 GMT 2021


Hi

ARM architecture gains support of Enhanced Privileged Access Never
(EPAN) which allows Privileged Access Never to be used with
Execute-only mappings.

As a consequence 24cecc377463 ("arm64: Revert support for execute-only
user mappings") can be revisited and re-enabled.

Changelog:

  RFC -> v1
      - removed cap check in pte_valid_not_user (per Catalin)
      - local_flush_tlb_all() in cpu_enable_epan() (per Catalin)
      - reordered with CnP (per Catalin)
      - s/HWCAP2_EPAN/HWCAP2_EXECONLY/ (per Catalin)

   v1 -> v2
      - rebased on for-next/uaccess (for INIT_SCTLR_EL1_MMU_ON)
      - moved EPAN enable to proc.S (via INIT_SCTLR_EL1_MMU_ON),
        so no need in enable method from cpufeature, no need to
        keep ordering relative to CnP (per Catalin)

   v2 -> v3
      - rebased on 5.11-rc4

   v3 -> v4
      - rebased on 5.12-rc2
      - restore comments around pte_valid_not_user and
        protection_map[] (per Will)
      - rework the vm_flags initialisation (per Will)
      - moved logic of pte_valid_user() into pte_access_permitted()
        (per Catalin)

Thanks!

Vladimir Murzin (2):
  arm64: Support execute-only permissions with Enhanced PAN
  arm64: Introduce HWCAPS2_EXECONLY

 arch/arm64/Kconfig                    | 17 +++++++++++++++
 arch/arm64/include/asm/cpucaps.h      |  3 ++-
 arch/arm64/include/asm/hwcap.h        |  1 +
 arch/arm64/include/asm/pgtable-prot.h |  5 +++--
 arch/arm64/include/asm/pgtable.h      | 31 ++++++++++++++++++++-------
 arch/arm64/include/asm/sysreg.h       |  4 +++-
 arch/arm64/include/uapi/asm/hwcap.h   |  1 +
 arch/arm64/kernel/cpufeature.c        | 15 +++++++++++++
 arch/arm64/kernel/cpuinfo.c           |  1 +
 arch/arm64/mm/fault.c                 | 18 +++++++++++++++-
 mm/mmap.c                             |  6 ++++++
 11 files changed, 89 insertions(+), 13 deletions(-)

-- 
2.24.0




More information about the linux-arm-kernel mailing list