Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: entry: use stackleak_erase_on_task_stack()

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

authored by

Mark Rutland and committed by
Kees Cook
88959a39 8111e67d

+1 -1
+1 -1
arch/arm64/kernel/entry.S
··· 596 596 ldr x19, [tsk, #TSK_TI_FLAGS] // re-check for single-step 597 597 enable_step_tsk x19, x2 598 598 #ifdef CONFIG_GCC_PLUGIN_STACKLEAK 599 - bl stackleak_erase 599 + bl stackleak_erase_on_task_stack 600 600 #endif 601 601 kernel_exit 0 602 602 SYM_CODE_END(ret_to_user)