diff options
Diffstat (limited to 'include/asm-i386/thread_info.h')
-rw-r--r-- | include/asm-i386/thread_info.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/include/asm-i386/thread_info.h b/include/asm-i386/thread_info.h index fdbc7f422ea5..ff1e2b1a7c84 100644 --- a/include/asm-i386/thread_info.h +++ b/include/asm-i386/thread_info.h | |||
@@ -83,17 +83,15 @@ struct thread_info { | |||
83 | #define init_stack (init_thread_union.stack) | 83 | #define init_stack (init_thread_union.stack) |
84 | 84 | ||
85 | 85 | ||
86 | /* how to get the current stack pointer from C */ | ||
87 | register unsigned long current_stack_pointer asm("esp") __attribute_used__; | ||
88 | |||
86 | /* how to get the thread information struct from C */ | 89 | /* how to get the thread information struct from C */ |
87 | static inline struct thread_info *current_thread_info(void) | 90 | static inline struct thread_info *current_thread_info(void) |
88 | { | 91 | { |
89 | struct thread_info *ti; | 92 | return (struct thread_info *)(current_stack_pointer & ~(THREAD_SIZE - 1)); |
90 | __asm__("andl %%esp,%0; ":"=r" (ti) : "0" (~(THREAD_SIZE - 1))); | ||
91 | return ti; | ||
92 | } | 93 | } |
93 | 94 | ||
94 | /* how to get the current stack pointer from C */ | ||
95 | register unsigned long current_stack_pointer asm("esp") __attribute_used__; | ||
96 | |||
97 | /* thread information allocation */ | 95 | /* thread information allocation */ |
98 | #ifdef CONFIG_DEBUG_STACK_USAGE | 96 | #ifdef CONFIG_DEBUG_STACK_USAGE |
99 | #define alloc_thread_info(tsk) \ | 97 | #define alloc_thread_info(tsk) \ |