diff options
author | Sven Schnelle <svens@linux.ibm.com> | 2021-04-29 11:14:51 +0200 |
---|---|---|
committer | Heiko Carstens <hca@linux.ibm.com> | 2021-04-30 17:20:39 +0200 |
commit | bae1cd368c45d1127e054e90305d585dbc8b3b46 (patch) | |
tree | 07224dd0189f8d3d63f1582a3ef7850250d884d0 /arch/s390/kernel/syscall.c | |
parent | f5b474decad90719e2a4234f83d97aad19307584 (diff) | |
download | linux-bae1cd368c45d1127e054e90305d585dbc8b3b46.tar.gz linux-bae1cd368c45d1127e054e90305d585dbc8b3b46.tar.bz2 linux-bae1cd368c45d1127e054e90305d585dbc8b3b46.zip |
s390/entry: add support for syscall stack randomization
This adds support for adding a random offset to the stack while handling
syscalls. The patch uses get_tod_clock_fast() as this is considered good
enough and has much less performance penalty compared to using
get_random_int(). The patch also adds randomization in pgm_check_handler()
as the sigreturn/rt_sigreturn system calls might be called from there.
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Link: https://lore.kernel.org/r/20210429091451.1062594-1-svens@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel/syscall.c')
-rw-r--r-- | arch/s390/kernel/syscall.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/syscall.c b/arch/s390/kernel/syscall.c index bc8e650e377d..4e5cc7d2364e 100644 --- a/arch/s390/kernel/syscall.c +++ b/arch/s390/kernel/syscall.c @@ -142,6 +142,7 @@ void do_syscall(struct pt_regs *regs) void noinstr __do_syscall(struct pt_regs *regs, int per_trap) { + add_random_kstack_offset(); enter_from_user_mode(regs); memcpy(®s->gprs[8], S390_lowcore.save_area_sync, 8 * sizeof(unsigned long)); |