/* Advance this CPU's callbacks, but only if the current grace period has ended. This may be called only from the CPU to whom the rdp belongs. In addition, the corresponding leaf rcu_node structure's ->lock must be held by the caller, with irqs disabled.  */
static void __rcu_process_gp_end(struct rcu_state *rsp, struct rcu_node *rnp, struct rcu_data *rdp)
/* Advance this CPU's callbacks, but only if the current grace period has ended. This may be called only from the CPU to whom the rdp belongs. In addition, the corresponding leaf rcu_node structure's ->lock must be held by the caller, with irqs disabled.  */
static void __rcu_process_gp_end(struct rcu_state *rsp, struct rcu_node *rnp, struct rcu_data *rdp)
{
	if (rdp->completed != rnp->completed) {
		rdp->nxttail[RCU_DONE_TAIL] = rdp->nxttail[RCU_WAIT_TAIL];
		rdp->nxttail[RCU_WAIT_TAIL] = rdp->nxttail[RCU_NEXT_READY_TAIL];
		rdp->nxttail[RCU_NEXT_READY_TAIL] = rdp->nxttail[RCU_NEXT_TAIL];
		rdp->completed = rnp->completed;
	}
}