/* Must invoke this after you are finished using a given srcu_struct that was initialized via init_srcu_struct(), else you leak memory.  */
void cleanup_srcu_struct(struct srcu_struct *sp)
/* Must invoke this after you are finished using a given srcu_struct that was initialized via init_srcu_struct(), else you leak memory.  */
void cleanup_srcu_struct(struct srcu_struct *sp)
{
	int sum;
	sum = srcu_readers_active(sp);
	WARN_ON(sum);
	if (sum != 0)
		return;
	free_percpu(sp->per_cpu_ref);
	sp->per_cpu_ref = NULL;
}