Messages in this thread | | | Subject | Re: [PATCH] powerpc/irq: Remove HAVE_IRQ_EXIT_ON_IRQ_STACK feature at powerpc platform | From | Benjamin Herrenschmidt <> | Date | Sat, 29 Mar 2014 08:25:23 +1100 |
| |
On Fri, 2014-03-28 at 15:38 +0800, Dongsheng Wang wrote: > From: Wang Dongsheng <dongsheng.wang@freescale.com> > > If softirq use hardirq stack, we will get kernel painc when a hard irq coming again > during __do_softirq enable local irq to deal with softirq action. So we need to switch > satck into softirq stack when invoke soft irq.
Yes, an interrupt can potentially nest but we should be near the top of the stack at that point, as the comment says in softirq.c, it should be fine. And your backtrace doesn't seem to indicate a major overflow.
The code in do_IRQ() will make sure we don't switch stack again if we were already on either hard or softirq stack.
I need a better analysis of your problem. Is that really a stack overflow ? Or is it a false positive due to a bug in the overflow detection ?
I moved around the code that updates KSP_LIMIT in 32-bit to asm in misc_32.S a while ago since we don't do that on 64-bit, maybe we are getting it wrong...
Cheers, Ben.
| |