syscall_enter_from_user_mode_randomize_stack() replaces syscall_enter_from_user_mode() and the subsequent invocation of add_random_kstack_offset().
The advantage is that it applies the stack randomization right after enter_from_user_mode() and thereby avoids the overhead of get/put_cpu_var() as that code is invoked with interrupts disabled. No functional change. Signed-off-by: Thomas Gleixner <[email protected]> Cc: Huacai Chen <[email protected]> Cc: [email protected] --- arch/loongarch/kernel/syscall.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) --- a/arch/loongarch/kernel/syscall.c +++ b/arch/loongarch/kernel/syscall.c @@ -11,7 +11,6 @@ #include <linux/linkage.h> #include <linux/nospec.h> #include <linux/objtool.h> -#include <linux/randomize_kstack.h> #include <linux/syscalls.h> #include <linux/unistd.h> @@ -70,9 +69,7 @@ void noinstr __no_stack_protector do_sys regs->orig_a0 = regs->regs[4]; regs->regs[4] = -ENOSYS; - nr = syscall_enter_from_user_mode(regs, nr); - - add_random_kstack_offset(); + nr = syscall_enter_from_user_mode_randomize_stack(regs, nr); if (nr < NR_syscalls) { syscall_fn = sys_call_table[array_index_nospec(nr, NR_syscalls)];
