* Steven Rostedt | 2013-12-05 19:45:30 [-0500]: >On Fri, 6 Dec 2013 00:42:22 +0100 >Nicholas Mc Guire <der.herr@xxxxxxx> wrote: >> --- a/kernel/softirq.c >> +++ b/kernel/softirq.c >> @@ -569,8 +569,8 @@ static void do_current_softirqs(int need_rcu_bh_qs) >> >> void local_bh_disable(void) >> { >> - migrate_disable(); >> - current->softirq_nestcnt++; >> + if (++current->softirq_nestcnt == 1) >> + migrate_disable(); >> } >> EXPORT_SYMBOL(local_bh_disable); >> >> @@ -584,8 +584,8 @@ void local_bh_enable(void) >> do_current_softirqs(1); >> local_irq_enable(); >> >> - current->softirq_nestcnt--; >> - migrate_enable(); >> + if (--current->softirq_nestcnt == 0) >> + migrate_enable(); > >I wonder if we should add a: > > BUG_ON(current->softirq_nestcnt < 0); We have a WARN_ON() in each enable path. That one in local_bh_enable() isn't part of the context here. If you want to s/WARN_/BUG_/ then I would prefer not to since there are a few people with no UART and this could break the system while the current sollution keeps the system running. >As for the patch, I haven't found anything wrong with it. > >Reviewed-by: Steven Rostedt <rostedt@xxxxxxxxxxx> Thanks. Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html