Catalin Marinas
cab15ce604
arm64: Introduce execute-only page access permissions
...
The ARMv8 architecture allows execute-only user permissions by clearing
the PTE_UXN and PTE_USER bits. However, the kernel running on a CPU
implementation without User Access Override (ARMv8.2 onwards) can still
access such page, so execute-only page permission does not protect
against read(2)/write(2) etc. accesses. Systems requiring such
protection must enable features like SECCOMP.
This patch changes the arm64 __P100 and __S100 protection_map[] macros
to the new __PAGE_EXECONLY attributes. A side effect is that
pte_user() no longer triggers for __PAGE_EXECONLY since PTE_USER isn't
set. To work around this, the check is done on the PTE_NG bit via the
pte_ng() macro. VM_READ is also checked now for page faults.
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2016-08-25 18:00:29 +01:00
..
alpha
RTC for 4.8
2016-08-05 09:48:22 -04:00
arc
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
arm
DeviceTree fixes for 4.8:
2016-08-18 19:31:08 -07:00
arm64
arm64: Introduce execute-only page access permissions
2016-08-25 18:00:29 +01:00
avr32
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
blackfin
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
c6x
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
cris
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
frv
RTC for 4.8
2016-08-05 09:48:22 -04:00
h8300
h8300: Add missing include file to asm/io.h
2016-08-13 08:53:56 -07:00
hexagon
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
ia64
Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user
2016-08-08 14:48:14 -07:00
m32r
mm: do not pass mm_struct into handle_mm_fault
2016-07-26 16:19:19 -07:00
m68k
m68knommu: fix user a5 register being overwritten
2016-08-08 12:38:47 +10:00
metag
metag: Drop show_mem() from mem_init()
2016-08-09 13:41:30 +01:00
microblaze
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
mips
MIPS: KVM: Propagate kseg0/mapped tlb fault errors
2016-08-12 12:01:30 +02:00
mn10300
RTC for 4.8
2016-08-05 09:48:22 -04:00
nios2
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
openrisc
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
parisc
parisc: Fix order of EREFUSED define in errno.h
2016-08-20 13:33:53 +02:00
powerpc
KVM locks kvm_device list to prevent corruption on device creation.
2016-08-13 10:11:14 -07:00
s390
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2016-08-16 15:50:22 -07:00
score
treewide: replace obsolete _refok by __ref
2016-08-02 17:31:41 -04:00
sh
These changes improve device tree support (including builtin DTB), add
2016-08-06 09:00:05 -04:00
sparc
Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user
2016-08-08 14:48:14 -07:00
tile
tile: support static_key usage in non-module __exit sections
2016-08-04 08:50:07 -04:00
um
Merge branch 'for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
2016-08-04 19:37:59 -04:00
unicore32
unicore32: mm: Add missing parameter to arch_vma_access_permitted
2016-08-13 08:53:18 -07:00
x86
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-08-18 15:09:41 -07:00
xtensa
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
.gitignore
Kconfig
Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user
2016-08-08 14:48:14 -07:00