/* Removes the count for the old reader from the appropriate per-CPU element of the srcu_struct. Note that this may well be a different CPU than that which was incremented by the corresponding srcu_read_lock(). Must be called from process context.  */
void srcu_read_unlock(struct srcu_struct *sp, int idx)
/* Removes the count for the old reader from the appropriate per-CPU element of the srcu_struct. Note that this may well be a different CPU than that which was incremented by the corresponding srcu_read_lock(). Must be called from process context.  */
void srcu_read_unlock(struct srcu_struct *sp, int idx)
{
	preempt_disable();
	srcu_barrier();
	per_cpu_ptr(sp->per_cpu_ref, smp_processor_id())->c[idx]--;
	preempt_enable();
}