aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/uapi/asm
diff options
context:
space:
mode:
authorJames Morse <james.morse@arm.com>2015-07-22 19:05:54 +0100
committerWill Deacon <will.deacon@arm.com>2015-07-27 11:08:41 +0100
commit338d4f49d6f7114a017d294ccf7374df4f998edc (patch)
treeaf0b5cedc6e042623346d4e82be24eda190626a1 /arch/arm64/include/uapi/asm
parentarm64: Generalise msr_s/mrs_s operations (diff)
downloadlinux-dev-338d4f49d6f7114a017d294ccf7374df4f998edc.tar.xz
linux-dev-338d4f49d6f7114a017d294ccf7374df4f998edc.zip
arm64: kernel: Add support for Privileged Access Never
'Privileged Access Never' is a new arm8.1 feature which prevents privileged code from accessing any virtual address where read or write access is also permitted at EL0. This patch enables the PAN feature on all CPUs, and modifies {get,put}_user helpers temporarily to permit access. This will catch kernel bugs where user memory is accessed directly. 'Unprivileged loads and stores' using ldtrb et al are unaffected by PAN. Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: James Morse <james.morse@arm.com> [will: use ALTERNATIVE in asm and tidy up pan_enable check] Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/uapi/asm')
-rw-r--r--arch/arm64/include/uapi/asm/ptrace.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
index 6913643bbe54..208db3df135a 100644
--- a/arch/arm64/include/uapi/asm/ptrace.h
+++ b/arch/arm64/include/uapi/asm/ptrace.h
@@ -44,6 +44,7 @@
#define PSR_I_BIT 0x00000080
#define PSR_A_BIT 0x00000100
#define PSR_D_BIT 0x00000200
+#define PSR_PAN_BIT 0x00400000
#define PSR_Q_BIT 0x08000000
#define PSR_V_BIT 0x10000000
#define PSR_C_BIT 0x20000000