Message ID | 20100902172625.GD2349@linux.vnet.ibm.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Date: Thu, 2 Sep 2010 10:26:25 -0700 > softirq: adjust error check > > The error check for _local_bh_enable_ip() warns on both in_irq() and > irqs_disabled(). The check for in_irq() is necessary, because a hardirq > might well have interrupted bh execution, in which case it is simply > not possible for the hardirq to exclude the bh that got interrupted. > > However, it is perfectly reasonable to disable bh while hardirqs are > disabled, and this in fact promotes common code. This commit therefore > removes the irqs_disabled() check. > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Acked-by: David S. Miller <davem@davemloft.net> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Sep 03, 2010 at 08:34:09AM -0700, David Miller wrote: > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> > Date: Thu, 2 Sep 2010 10:26:25 -0700 > > > softirq: adjust error check > > > > The error check for _local_bh_enable_ip() warns on both in_irq() and > > irqs_disabled(). The check for in_irq() is necessary, because a hardirq > > might well have interrupted bh execution, in which case it is simply > > not possible for the hardirq to exclude the bh that got interrupted. > > > > However, it is perfectly reasonable to disable bh while hardirqs are > > disabled, and this in fact promotes common code. This commit therefore > > removes the irqs_disabled() check. > > > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > Acked-by: David S. Miller <davem@davemloft.net> Thank you, David! Thanx, Paul -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kernel/softirq.c b/kernel/softirq.c index 07b4f1b..3cff1bb 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -140,7 +140,7 @@ EXPORT_SYMBOL(_local_bh_enable); static inline void _local_bh_enable_ip(unsigned long ip) { - WARN_ON_ONCE(in_irq() || irqs_disabled()); + WARN_ON_ONCE(in_irq()); #ifdef CONFIG_TRACE_IRQFLAGS local_irq_disable(); #endif