• Martin Schwidefsky's avatar
    s390: add no-execute support · 57d7f939
    Martin Schwidefsky authored
    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: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    57d7f939
kprobes.c 20.9 KB