linux/arch/arm64/include/uapi/asm
James Morse 57f4959bad arm64: kernel: Add support for User Access Override
'User Access Override' is a new ARMv8.2 feature which allows the
unprivileged load and store instructions to be overridden to behave in
the normal way.

This patch converts {get,put}_user() and friends to use ldtr*/sttr*
instructions - so that they can only access EL0 memory, then enables
UAO when fs==KERNEL_DS so that these functions can access kernel memory.

This allows user space's read/write permissions to be checked against the
page tables, instead of testing addr<USER_DS, then using the kernel's
read/write permissions.

Signed-off-by: James Morse <james.morse@arm.com>
[catalin.marinas@arm.com: move uao_thread_switch() above dsb()]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2016-02-18 17:27:04 +00:00
..
auxvec.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
bitsperlong.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
byteorder.h arm64: big-endian: fix byteorder include 2013-10-25 15:59:32 +01:00
fcntl.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
hwcap.h arm64: elf: advertise 8.1 atomic instructions as new hwcap 2015-07-27 14:34:39 +01:00
Kbuild arm64: uapi: expose our struct ucontext to the uapi headers 2015-01-23 18:07:49 +00:00
kvm.h arm64: use linux/types.h in kvm.h 2015-11-12 15:18:10 +00:00
param.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
perf_regs.h ARM64: perf: add support for perf registers API 2014-03-13 11:22:37 +00:00
posix_types.h arm64: uid16: fix __kernel_old_{gid,uid}_t definitions 2014-06-18 12:41:09 +01:00
ptrace.h arm64: kernel: Add support for User Access Override 2016-02-18 17:27:04 +00:00
setup.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
sigcontext.h arm64: fix build error in sigcontext.h 2014-06-18 12:41:56 +01:00
siginfo.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
signal.h arm64: Fix MINSIGSTKSZ and SIGSTKSZ 2015-10-12 17:40:12 +01:00
stat.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
statfs.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
ucontext.h arm64: uapi: expose our struct ucontext to the uapi headers 2015-01-23 18:07:49 +00:00
unistd.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00