diff options
author | James Morse <james.morse@arm.com> | 2015-07-22 21:05:54 +0300 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-07-27 13:08:41 +0300 |
commit | 338d4f49d6f7114a017d294ccf7374df4f998edc (patch) | |
tree | af0b5cedc6e042623346d4e82be24eda190626a1 /arch/arm64/include/uapi | |
parent | 9ded63aaf83eba76e1a54ac02581c2badc497f1a (diff) | |
download | linux-338d4f49d6f7114a017d294ccf7374df4f998edc.tar.xz |
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')
-rw-r--r-- | arch/arm64/include/uapi/asm/ptrace.h | 1 |
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 |