This series adds support for the ARMv8.3 pointer authentication extension, enabling userspace return address protection with GCC 7 and above.
Arnaldo Carvalho de Melo (2): tools beauty: Make the prctl option table generator catch all PR_ options tools headers uapi: Sync prctl.h with the kernel sources
Kristina Martsenko (3): arm64: add comments about EC exception levels arm64: add prctl control for resetting ptrauth keys arm64: add ptrace regsets for ptrauth key management
Mark Rutland (8): arm64: add pointer authentication register bits arm64/kvm: hide ptrauth from guests arm64/cpufeature: detect pointer authentication arm64: add basic pointer authentication support arm64: expose user PAC bit positions via ptrace arm64: perf: strip PAC when unwinding userspace arm64: enable pointer authentication arm64: docs: document pointer authentication
Will Deacon (3): arm64: ptr auth: Move per-thread keys from thread_info to thread_struct arm64: cpufeature: Reduce number of pointer auth CPU caps from 6 to 4 arm64: cpufeature: Rework ptr auth hwcaps using multi_entry_cap_matches
Documentation/arm64/booting.txt | 8 + Documentation/arm64/cpu-feature-registers.txt | 8 + Documentation/arm64/elf_hwcaps.txt | 12 ++ .../arm64/pointer-authentication.txt | 93 +++++++++ arch/arm64/Kconfig | 23 +++ arch/arm64/include/asm/cpucaps.h | 6 +- arch/arm64/include/asm/cpufeature.h | 73 +++++-- arch/arm64/include/asm/esr.h | 17 +- arch/arm64/include/asm/pointer_auth.h | 97 +++++++++ arch/arm64/include/asm/processor.h | 7 + arch/arm64/include/asm/sysreg.h | 30 +++ arch/arm64/include/uapi/asm/hwcap.h | 2 + arch/arm64/include/uapi/asm/ptrace.h | 20 ++ arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/cpu_errata.c | 32 --- arch/arm64/kernel/cpufeature.c | 138 +++++++++++-- arch/arm64/kernel/cpuinfo.c | 2 + arch/arm64/kernel/perf_callchain.c | 6 +- arch/arm64/kernel/pointer_auth.c | 47 +++++ arch/arm64/kernel/process.c | 4 + arch/arm64/kernel/ptrace.c | 185 ++++++++++++++++++ arch/arm64/kvm/handle_exit.c | 18 ++ arch/arm64/kvm/sys_regs.c | 8 + include/uapi/linux/elf.h | 3 + include/uapi/linux/prctl.h | 8 + kernel/sys.c | 8 + tools/include/uapi/linux/prctl.h | 8 + tools/perf/trace/beauty/prctl_option.sh | 2 +- 28 files changed, 789 insertions(+), 77 deletions(-) create mode 100644 Documentation/arm64/pointer-authentication.txt create mode 100644 arch/arm64/include/asm/pointer_auth.h create mode 100644 arch/arm64/kernel/pointer_auth.c