diff options
Diffstat (limited to 'arch/x86/kernel/irq_64.c')
-rw-r--r-- | arch/x86/kernel/irq_64.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c index 60eb84eb77a..b842fc82be1 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c | |||
@@ -29,11 +29,12 @@ | |||
29 | static inline void stack_overflow_check(struct pt_regs *regs) | 29 | static inline void stack_overflow_check(struct pt_regs *regs) |
30 | { | 30 | { |
31 | u64 curbase = (u64)task_stack_page(current); | 31 | u64 curbase = (u64)task_stack_page(current); |
32 | static unsigned long warned = -60*HZ; | 32 | static unsigned long warned = INITIAL_JIFFIES - 60*HZ; |
33 | 33 | ||
34 | if (regs->sp >= curbase && regs->sp <= curbase + THREAD_SIZE && | 34 | if (regs->sp >= curbase && regs->sp <= curbase + THREAD_SIZE && |
35 | regs->sp < curbase + sizeof(struct thread_info) + 128 && | 35 | regs->sp < curbase + sizeof(struct thread_info) + |
36 | time_after(jiffies, warned + 60*HZ)) { | 36 | sizeof(struct pt_regs) + 128 && |
37 | time_after(jiffies, warned + 60*HZ)) { | ||
37 | printk("do_IRQ: %s near stack overflow (cur:%Lx,sp:%lx)\n", | 38 | printk("do_IRQ: %s near stack overflow (cur:%Lx,sp:%lx)\n", |
38 | current->comm, curbase, regs->sp); | 39 | current->comm, curbase, regs->sp); |
39 | show_stack(NULL,NULL); | 40 | show_stack(NULL,NULL); |