On Wed, Feb 14, 2018 at 05:59:54PM +0900, Byungchul Park wrote: > We should've kept sp->srcu_gp_seq_needed_exp the furthest. But > it probably fails because of the incorrect condition. Fix it. > > Signed-off-by: Byungchul Park <byungchul.p...@lge.com>
Good catch, and thank you for reviewing the SRCU code, but Ildar Ismagilov beat you to this one. Please see 574428dee1f3 ("rcu: Fix misprint in srcu_funnel_exp_start") in -rcu. Thanx, Paul > --- > kernel/rcu/srcutree.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c > index d5cea81..44bc0fa 100644 > --- a/kernel/rcu/srcutree.c > +++ b/kernel/rcu/srcutree.c > @@ -626,7 +626,7 @@ static void srcu_funnel_exp_start(struct srcu_struct *sp, > struct srcu_node *snp, > spin_unlock_irqrestore_rcu_node(snp, flags); > } > spin_lock_irqsave_rcu_node(sp, flags); > - if (!ULONG_CMP_LT(sp->srcu_gp_seq_needed_exp, s)) > + if (ULONG_CMP_LT(sp->srcu_gp_seq_needed_exp, s)) > sp->srcu_gp_seq_needed_exp = s; > spin_unlock_irqrestore_rcu_node(sp, flags); > } > -- > 1.9.1 >