diff options
-rw-r--r-- | arch/x86/kernel/irq_32.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c index 988dc8bcaebf..63ce838e5a54 100644 --- a/arch/x86/kernel/irq_32.c +++ b/arch/x86/kernel/irq_32.c | |||
@@ -70,7 +70,11 @@ static void call_on_stack(void *func, void *stack) | |||
70 | } | 70 | } |
71 | 71 | ||
72 | /* how to get the current stack pointer from C */ | 72 | /* how to get the current stack pointer from C */ |
73 | register unsigned long current_stack_pointer asm("esp") __used; | 73 | #define current_stack_pointer ({ \ |
74 | unsigned long sp; \ | ||
75 | asm("mov %%esp,%0" : "=g" (sp)); \ | ||
76 | sp; \ | ||
77 | }) | ||
74 | 78 | ||
75 | static inline void *current_stack(void) | 79 | static inline void *current_stack(void) |
76 | { | 80 | { |