linux/arch/s390/mm
Martin Schwidefsky 57d7f939e7 s390: add no-execute support
Bit 0x100 of a page table, segment table of region table entry
can be used to disallow code execution for the virtual addresses
associated with the entry.

There is one tricky bit, the system call to return from a signal
is part of the signal frame written to the user stack. With a
non-executable stack this would stop working. To avoid breaking
things the protection fault handler checks the opcode that caused
the fault for 0x0a77 (sys_sigreturn) and 0x0aad (sys_rt_sigreturn)
and injects a system call. This is preferable to the alternative
solution with a stub function in the vdso because it works for
vdso=off and statically linked binaries as well.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2017-02-08 14:13:25 +01:00
..
cmm.c s390: convert use of typedef ctl_table to struct ctl_table 2013-10-28 08:36:25 +01:00
dump_pagetables.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
extmem.c s390: remove couple of unneeded semicolons 2017-01-16 07:27:54 +01:00
fault.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
gmap.c lib: radix-tree: check accounting of existing slot replacement users 2016-12-12 18:55:08 -08:00
gup.c mm: replace get_user_pages_unlocked() write/force parameters with gup_flags 2016-10-18 14:13:37 -07:00
hugetlbpage.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
init.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
maccess.c s390/maccess: reduce stnsm instructions 2016-02-17 09:05:04 +01:00
Makefile s390/extable: use generic search and sort routines 2016-03-22 15:36:02 -07:00
mem_detect.c s390/mem_detect: fix memory type of first block 2017-01-16 07:27:54 +01:00
mmap.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2016-05-18 12:17:16 -07:00
page-states.c s390/mm: use basic block for essa inline assembly 2016-06-28 09:32:29 +02:00
pageattr.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
pgalloc.c - ARM: GICv3 ITS emulation and various fixes. Removal of the old 2016-08-02 16:11:27 -04:00
pgtable.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
vmem.c s390: add no-execute support 2017-02-08 14:13:25 +01:00