RCU_NEXT_TAIL
.tails[RCU_NEXT_TAIL] = &n.head, \
BUILD_BUG_ON(RCU_NEXT_TAIL + 1 != ARRAY_SIZE(rsclp->gp_seq));
rcu_segcblist_inc_seglen(rsclp, RCU_NEXT_TAIL);
WRITE_ONCE(*rsclp->tails[RCU_NEXT_TAIL], rhp);
WRITE_ONCE(rsclp->tails[RCU_NEXT_TAIL], &rhp->next);
for (i = RCU_NEXT_TAIL; i > RCU_DONE_TAIL; i--)
for (; i <= RCU_NEXT_TAIL; i++)
rclp->tail = rsclp->tails[RCU_NEXT_TAIL];
rcu_segcblist_add_seglen(rsclp, RCU_NEXT_TAIL, rclp->len);
WRITE_ONCE(*rsclp->tails[RCU_NEXT_TAIL], rclp->head);
WRITE_ONCE(rsclp->tails[RCU_NEXT_TAIL], rclp->tail);
for (i = RCU_WAIT_TAIL; i < RCU_NEXT_TAIL; i++) {
for (j = RCU_WAIT_TAIL; i < RCU_NEXT_TAIL; i++, j++) {
if (rsclp->tails[j] == rsclp->tails[RCU_NEXT_TAIL])
if (rcu_segcblist_restempty(rsclp, i) || ++i >= RCU_NEXT_TAIL)
for (j = i + 1; j <= RCU_NEXT_TAIL; j++)
for (; i < RCU_NEXT_TAIL; i++) {
WRITE_ONCE(rsclp->tails[i], rsclp->tails[RCU_NEXT_TAIL]);
WARN_ON_ONCE(!rcu_segcblist_segempty(&sdp->srcu_cblist, RCU_NEXT_TAIL));
sprintf(bufn, "%ld", rsclp->seglen[RCU_NEXT_TAIL]);
".N"[!rcu_segcblist_segempty(rsclp, RCU_NEXT_TAIL)],
rcu_segcblist_segempty(rsclp, RCU_NEXT_TAIL) ? "" : bufn,