linux_dsm_epyc7002/arch/arm64/mm
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
..
cache.S arm64: mm: convert __dma_* routines to use start, size 2016-08-22 10:00:48 +01:00
context.c arm64: update ASID limit 2016-06-21 20:10:18 +01:00
copypage.c arm64: Defer dcache flush in __cpu_copy_user_page 2015-12-17 11:07:13 +00:00
dma-mapping.c arm64: apply __ro_after_init to some objects 2016-08-22 12:32:29 +01:00
dump.c arm64: Fix shift warning in arch/arm64/mm/dump.c 2016-08-18 12:38:11 +01:00
extable.c arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00
fault.c arm64: Introduce execute-only page access permissions 2016-08-25 18:00:29 +01:00
flush.c arm64: mm: remove page_mapping check in __sync_icache_dcache 2016-06-21 20:10:18 +01:00
hugetlbpage.c Revert "arm64: hugetlb: partial revert of 66b3923a1a0f" 2016-05-31 11:00:09 +01:00
init.c arm64: apply __ro_after_init to some objects 2016-08-22 12:32:29 +01:00
ioremap.c arm64: add ioremap physical address information 2015-01-23 15:29:06 +00:00
kasan_init.c arm64: kasan: Fix zero shadow mapping overriding kernel image shadow 2016-03-11 11:03:35 +00:00
Makefile arm64, numa: Add NUMA support for arm64 platforms. 2016-04-15 18:06:09 +01:00
mm.h arm64: Move unflatten_device_tree() call earlier. 2016-04-15 18:06:08 +01:00
mmap.c arm64: mm: remove unnecessary EXPORT_SYMBOL_GPL 2016-05-05 09:49:38 +01:00
mmu.c arm64: apply __ro_after_init to some objects 2016-08-22 12:32:29 +01:00
numa.c arm64: Fix NUMA build error when !CONFIG_ACPI 2016-08-17 17:16:58 +01:00
pageattr.c arm64: Add support for ARCH_SUPPORTS_DEBUG_PAGEALLOC 2016-02-16 15:40:30 +00:00
pgd.c arm64: mm: move pgd_cache initialisation to pgtable_cache_init 2016-01-05 15:43:10 +00:00
proc.S arm64: debug: unmask PSTATE.D earlier 2016-07-19 16:56:46 +01:00