]> git.karo-electronics.de Git - linux-beck.git/commitdiff
arm64: LLVMLinux: Use global stack pointer in return_address()
authorBehan Webster <behanw@converseincode.com>
Wed, 27 Aug 2014 04:29:34 +0000 (05:29 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 8 Sep 2014 13:39:19 +0000 (14:39 +0100)
The global register current_stack_pointer holds the current stack pointer.
This change supports being able to compile the kernel with both gcc and clang.

Author: Mark Charlebois <charlebm@gmail.com>
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Signed-off-by: Behan Webster <behanw@converseincode.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/return_address.c

index 89102a6ffad58899940123854da556ee59844daf..6c4fd2810ecb35b3e648db18923d21f19a50f422 100644 (file)
@@ -36,13 +36,12 @@ void *return_address(unsigned int level)
 {
        struct return_address_data data;
        struct stackframe frame;
-       register unsigned long current_sp asm ("sp");
 
        data.level = level + 2;
        data.addr = NULL;
 
        frame.fp = (unsigned long)__builtin_frame_address(0);
-       frame.sp = current_sp;
+       frame.sp = current_stack_pointer;
        frame.pc = (unsigned long)return_address; /* dummy */
 
        walk_stackframe(&frame, save_return_addr, &data);