ACCESS_ONCE(chan->finalized) = 1;
wake_up_interruptible(&chan->hp_wait);
wake_up_interruptible(&chan->read_wait);
- kref_put(&chan->ref, channel_release);
priv = chan->backend.priv;
+ kref_put(&chan->ref, channel_release);
return priv;
}
EXPORT_SYMBOL_GPL(channel_destroy);
return 0;
}
EXPORT_SYMBOL_GPL(lib_ring_buffer_reserve_slow);
+
+void __init init_lib_ring_buffer_frontend(void)
+{
+ int cpu;
+
+ for_each_possible_cpu(cpu)
+ spin_lock_init(&per_cpu(ring_buffer_nohz_lock, cpu));
+}