On Wed, 03 Dec 2014, Kevin Hao wrote: > For vanilla kernel we don't need to invoke rcu_read_lock/unlock_bh > explicitly to mark an RCU-bh critical section in the softirq context > because bh is already disabled in this case. But for a rt kernel, > the commit ("rcu: Merge RCU-bh into RCU-preempt") implements the > RCU-bh in term of RCU-preempt. So we have to use > rcu_read_lock/unlock_bh() to mark an RCU-bh critical section even in > + > +#ifdef CONFIG_PREEMPT_RT_FULL > + rcu_read_lock_bh(); > +#endif > + > + npinfo = rcu_dereference_bh(skb->dev->npinfo); > + ret = npinfo && (!list_empty(&npinfo->rx_np) || npinfo->rx_flags); > + > +#ifdef CONFIG_PREEMPT_RT_FULL > + rcu_read_unlock_bh(); > +#endif Is that not actually a bug indepedent of RT ? without the rcu_read_lock/unlock who says that the rcu_dereference is still valid at this point ? I though that if bh are already disabled you still need the read_lock. disabled bh would allow to "downgrad" the rcu_read_lock_bh to rcu_read_lock but you still need it. thx! hofrat -- 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