Commit 0d119fb5 authored by Ingo Molnar's avatar Ingo Molnar

Merge branch 'irq/urgent-v2' of...

Merge branch 'irq/urgent-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into irq/urgent

Pull a hardirq-nesting fix from Frederic Weisbecker.
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents f9273188 ded79754
...@@ -328,10 +328,19 @@ void irq_enter(void) ...@@ -328,10 +328,19 @@ void irq_enter(void)
static inline void invoke_softirq(void) static inline void invoke_softirq(void)
{ {
if (!force_irqthreads) if (!force_irqthreads) {
__do_softirq(); /*
else * We can safely execute softirq on the current stack if
* it is the irq stack, because it should be near empty
* at this stage. But we have no way to know if the arch
* calls irq_exit() on the irq stack. So call softirq
* in its own stack to prevent from any overrun on top
* of a potentially deep task stack.
*/
do_softirq();
} else {
wakeup_softirqd(); wakeup_softirqd();
}
} }
static inline void tick_irq_exit(void) static inline void tick_irq_exit(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment