On Tue, Aug 03, 2021 at 09:48:23AM -0700, Joe Perches wrote: > On Wed, 2021-07-21 at 13:21 -0700, Paul E. McKenney wrote: > > From: Liu Song <liu.song11@xxxxxxxxxx> > > > > Within rcu_gp_fqs_loop(), the "ret" local variable is set to the > > return value from swait_event_idle_timeout_exclusive(), but "ret" is > > unconditionally overwritten later in the code. This commit therefore > > removes this useless assignment. > [] > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > [] > > @@ -1960,8 +1960,8 @@ static noinline_for_stack void rcu_gp_fqs_loop(void) > > trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq, > > TPS("fqswait")); > > WRITE_ONCE(rcu_state.gp_state, RCU_GP_WAIT_FQS); > > - ret = swait_event_idle_timeout_exclusive( > > - rcu_state.gp_wq, rcu_gp_fqs_check_wake(&gf), j); > > + (void)swait_event_idle_timeout_exclusive(rcu_state.gp_wq, > > + rcu_gp_fqs_check_wake(&gf), j); > > It doesn't seem this is a __must_check routine so why > bother to cast to void ? As a hint to the reader that discarding the return value is intentional rather than an oversight. Thanx, Paul > > rcu_gp_torture_wait(); > > WRITE_ONCE(rcu_state.gp_state, RCU_GP_DOING_FQS); > > /* Locking provides needed memory barriers. */ > >