Message ID | 1328125319-5205-21-git-send-email-paulmck@linux.vnet.ibm.com |
---|---|
State | Superseded |
Headers | show |
On Wed, Feb 01, 2012 at 11:41:39AM -0800, Paul E. McKenney wrote: > [ Alternatively, delaying the ->rcu_read_lock_nesting decrement > until after the special handling would make the thing more robust > in the face of interrupts as well. And there is a separate patch > for that. ] Where does that separate patch live, and should it replace this one? - Josh Triplett
On Wed, Feb 01, 2012 at 06:30:33PM -0800, Josh Triplett wrote: > On Wed, Feb 01, 2012 at 11:41:39AM -0800, Paul E. McKenney wrote: > > [ Alternatively, delaying the ->rcu_read_lock_nesting decrement > > until after the special handling would make the thing more robust > > in the face of interrupts as well. And there is a separate patch > > for that. ] > > Where does that separate patch live, and should it replace this one? It is #18 in this series: "rcu: Protect __rcu_read_unlock() against scheduler-using irq handlers". Both are needed. I will rework the commit message appropriately. Thanx, Paul
diff --git a/kernel/rcutiny_plugin.h b/kernel/rcutiny_plugin.h index 3f6c07e..9d7d985 100644 --- a/kernel/rcutiny_plugin.h +++ b/kernel/rcutiny_plugin.h @@ -570,7 +570,7 @@ static noinline void rcu_read_unlock_special(struct task_struct *t) rcu_preempt_cpu_qs(); /* Hardware IRQ handlers cannot block. */ - if (in_irq()) { + if (in_irq() || in_serving_softirq()) { local_irq_restore(flags); return; }