/* Report a full set of quiescent states to the specified rcu_state data structure. This involves cleaning up after the prior grace period and letting rcu_start_gp() start up the next grace period if one is needed. Note that the caller must hold rnp->lock, as required by rcu_start_gp(), which will release it.  */
static void rcu_report_qs_rsp(struct rcu_state *rsp, unsigned long flags) __releases(rcu_get_root(rsp) -> lock)
/* Report a full set of quiescent states to the specified rcu_state data structure. This involves cleaning up after the prior grace period and letting rcu_start_gp() start up the next grace period if one is needed. Note that the caller must hold rnp->lock, as required by rcu_start_gp(), which will release it.  */
static void rcu_report_qs_rsp(struct rcu_state *rsp, unsigned long flags) __releases(rcu_get_root(rsp) -> lock)
{
	WARN_ON_ONCE(!rcu_gp_in_progress(rsp));
	rsp->completed = rsp->gpnum;
	rsp->signaled = RCU_GP_IDLE;
	rcu_start_gp(rsp, flags);
}