* Tiejun Chen | 2013-12-18 17:51:49 [+0800]: >Any callers to the function rcu_preempt_qs() must disable irqs in >order to protect the assignment to ->rcu_read_unlock_special. In >RT case, rcu_bh_qs() as the wrapper of rcu_preempt_qs() is called >in some scenarios where irq is enabled, like this path, > >do_single_softirq() > | > + local_irq_enable(); > + handle_softirq() > | | > | + rcu_bh_qs() > | | > | + rcu_preempt_qs() > | > + local_irq_disable() > >So here we'd better disable irq directly inside of rcu_bh_qs() to >fix this, otherwise the kernel may be freezable sometimes as >observed. And especially this way is also kind and safe for the >potential rcu_bh_qs() usage elsewhere in the future. > >Signed-off-by: Tiejun Chen <tiejun.chen@xxxxxxxxxxxxx> >Signed-off-by: Bin Jiang <bin.jiang@xxxxxxxxxxxxx> Applied. 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