arm64: entry: use stackleak_erase_on_task_stack()
authorMark Rutland <mark.rutland@arm.com>
Wed, 27 Apr 2022 17:31:28 +0000 (18:31 +0100)
committerKees Cook <keescook@chromium.org>
Sun, 8 May 2022 08:33:09 +0000 (01:33 -0700)
On arm64 we always call stackleak_erase() on a task stack, and never
call it on another stack. We can avoid some redundant work by using
stackleak_erase_on_task_stack(), telling the stackleak code that it's
being called on a task stack.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Alexander Popov <alex.popov@linux.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Will Deacon <will@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220427173128.2603085-14-mark.rutland@arm.com
arch/arm64/kernel/entry.S

index ede028dee81b09a0b07d91c99123605b3ebc3a0e..5b82b9292400539a627918eb41acae0b866357a9 100644 (file)
@@ -596,7 +596,7 @@ SYM_CODE_START_LOCAL(ret_to_user)
        ldr     x19, [tsk, #TSK_TI_FLAGS]       // re-check for single-step
        enable_step_tsk x19, x2
 #ifdef CONFIG_GCC_PLUGIN_STACKLEAK
-       bl      stackleak_erase
+       bl      stackleak_erase_on_task_stack
 #endif
        kernel_exit 0
 SYM_CODE_END(ret_to_user)