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

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

rcu: Convert rcu_gpnum_ovf() to ->gp_seq



This commit converts rcu_gpnum_ovf() to use ->gp_seq instead of ->gpnum.
Same size unsigned long, so same approach.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent 67e14c1e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1089,14 +1089,15 @@ static int rcu_is_cpu_rrupt_from_idle(void)
/*
 * We are reporting a quiescent state on behalf of some other CPU, so
 * it is our responsibility to check for and handle potential overflow
 * of the rcu_node ->gpnum counter with respect to the rcu_data counters.
 * of the rcu_node ->gp_seq counter with respect to the rcu_data counters.
 * After all, the CPU might be in deep idle state, and thus executing no
 * code whatsoever.
 */
static void rcu_gpnum_ovf(struct rcu_node *rnp, struct rcu_data *rdp)
{
	raw_lockdep_assert_held_rcu_node(rnp);
	if (ULONG_CMP_LT(READ_ONCE(rdp->gpnum) + ULONG_MAX / 4, rnp->gpnum))
	if (ULONG_CMP_LT(rcu_seq_current(&rdp->gp_seq) + ULONG_MAX / 4,
			 rnp->gp_seq))
		WRITE_ONCE(rdp->gpwrap, true);
	if (ULONG_CMP_LT(rdp->rcu_iw_gpnum + ULONG_MAX / 4, rnp->gpnum))
		rdp->rcu_iw_gpnum = rnp->gpnum + ULONG_MAX / 4;