Re: [PATCH] srcu: Fix incorrect condition in srcu_funnel_exp_start()
From: Paul E. McKenney
Date: Wed Feb 14 2018 - 16:42:39 EST
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
>