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.park@xxxxxxx>
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