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

alpha: Implement "current_stack_pointer"

To follow the existing per-arch conventions replace open-coded use
of asm "$30" as "current_stack_pointer". This will let it be used in
non-arch places (like HARDENED_USERCOPY).

Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: "Alexander A. Klimov" <grandmaster@al2klimov.de>
Cc: linux-alpha@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Matt Turner <mattst88@gmail.com>

authored by

Kees Cook and committed by
Matt Turner
bd1912de d7cf43ed

+4 -1
+1
arch/alpha/Kconfig
··· 3 3 bool 4 4 default y 5 5 select ARCH_32BIT_USTAT_F_TINODE 6 + select ARCH_HAS_CURRENT_STACK_POINTER 6 7 select ARCH_MIGHT_HAVE_PC_PARPORT 7 8 select ARCH_MIGHT_HAVE_PC_SERIO 8 9 select ARCH_NO_PREEMPT
+2
arch/alpha/include/asm/thread_info.h
··· 41 41 register struct thread_info *__current_thread_info __asm__("$8"); 42 42 #define current_thread_info() __current_thread_info 43 43 44 + register unsigned long *current_stack_pointer __asm__ ("$30"); 45 + 44 46 #endif /* __ASSEMBLY__ */ 45 47 46 48 /* Thread information allocation. */
+1 -1
arch/alpha/lib/stacktrace.c
··· 92 92 { 93 93 instr * ret_pc; 94 94 instr * prologue = (instr *)stacktrace; 95 - register unsigned char * sp __asm__ ("$30"); 95 + unsigned char *sp = (unsigned char *)current_stack_pointer; 96 96 97 97 printk("\tstack trace:\n"); 98 98 do {