From: Behan Webster <beh...@converseincode.com> Use asm to make the globally named register work again for gcc and clang. Much more efficient than copying the stack pointer to a variable and back again.
Signed-off-by: Behan Webster <beh...@converseincode.com> --- arch/x86/include/asm/thread_info.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index e1940c0..e27ccc1 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -163,10 +163,10 @@ struct thread_info { */ #ifndef __ASSEMBLY__ -#define current_stack_pointer ({ \ - unsigned long sp; \ - asm("mov %%esp,%0" : "=g" (sp)); \ - sp; \ +#define current_stack_pointer ({ \ + register unsigned long sp asm("esp") __used; \ + asm("" : "=r" (sp)); \ + sp; \ }) /* how to get the thread information struct from C */ -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/