Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18390aea authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcu: Make rcu_gp_cleanup() write only once to ->gp_flags



At the end of rcu_gp_cleanup(), if another grace period is needed, but
not via rcu_accelerate_cbs(), the ->gp_flags field is written twice,
once when making the new grace-period request, and once when clearing
all other types of requests.  This commit therefore adds an else-clause
to avoid this double write.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent 26d950a9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2117,8 +2117,9 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
		rsp->gp_req_activity = jiffies;
		trace_rcu_grace_period(rsp->name, READ_ONCE(rsp->gpnum),
				       TPS("newreq"));
	}
	} else {
		WRITE_ONCE(rsp->gp_flags, rsp->gp_flags & RCU_GP_FLAG_INIT);
	}
	raw_spin_unlock_irq_rcu_node(rnp);
}