2010/8/26 Sergei Shtylyov <sshtylyov@xxxxxxxxxx>: > Hello. > > Adam Jiang wrote: > >> Add stackoverflow detection to mips arch > > [...] > >> diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c >> index c6345f5..75c584d 100644 >> --- a/arch/mips/kernel/irq.c >> +++ b/arch/mips/kernel/irq.c >> @@ -151,6 +151,25 @@ void __init init_IRQ(void) >> #endif >> } >> +#ifdef CONFIG_DEBUG_STACKOVERFLOW >> +static inline void check_stack_overflow(void) >> +{ >> + long sp; >> + >> + asm volatile("move %0, $sp" : "=r" (sp)); >> + sp = sp & (THREAD_SIZE-1); >> + >> + /* check for stack overflow: is there less than 2KB free? */ >> + if (unlikely(sp < (sizeof(struct thread_info) + 2048))) { >> + printk("do_IRQ: stack overflow: %ld\n", >> + sp - sizeof(struct thread_info)); >> + dump_stack(); >> + } >> +} >> +#else >> +static inline void check_stack_overflow(void) > > You didn't even try to compile with the option disabled -- you've missed > {}. Thank your, Sergei. This is my first patch. I realized I have to learn much to summit a good patch. And yes, I have to pay more attention on my code. Anyway, I will try to get a good patch and send it here again. /Adam > >> +#endif >> + >> /* >> * do_IRQ handles all normal device IRQ's (the special >> * SMP cross-CPU interrupts have their own specific > > WBR, Sergei >