X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=lib%2Fringbuffer%2Fring_buffer_frontend.c;h=ae0b9e3986267a8b79e8395d13cd23d55cc357c7;hb=ebfdc61210a82cb0d2015fad92359a97a75d49ce;hp=9bb4184143902472d35e474563a2a84f86ac31a8;hpb=635e457c7c8b9b5df544abce1ab326401983f2da;p=lttng-modules.git diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c index 9bb41841..ae0b9e39 100644 --- a/lib/ringbuffer/ring_buffer_frontend.c +++ b/lib/ringbuffer/ring_buffer_frontend.c @@ -60,6 +60,7 @@ #include "../../wrapper/ringbuffer/frontend.h" #include "../../wrapper/ringbuffer/iterator.h" #include "../../wrapper/ringbuffer/nohz.h" +#include "../../wrapper/atomic.h" /* * Internal structure representing offsets to use at a sub-buffer switch. @@ -585,6 +586,9 @@ static void channel_unregister_notifiers(struct channel *chan) static void channel_free(struct channel *chan) { + if (chan->backend.release_priv_ops) { + chan->backend.release_priv_ops(chan->backend.priv_ops); + } channel_iterator_free(chan); channel_backend_free(&chan->backend); kfree(chan); @@ -789,7 +793,7 @@ int lib_ring_buffer_open_read(struct lib_ring_buffer *buf) if (!atomic_long_add_unless(&buf->active_readers, 1, 1)) return -EBUSY; kref_get(&chan->ref); - smp_mb__after_atomic_inc(); + lttng_smp_mb__after_atomic(); return 0; } EXPORT_SYMBOL_GPL(lib_ring_buffer_open_read); @@ -799,7 +803,7 @@ void lib_ring_buffer_release_read(struct lib_ring_buffer *buf) struct channel *chan = buf->backend.chan; CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); - smp_mb__before_atomic_dec(); + lttng_smp_mb__before_atomic(); atomic_long_dec(&buf->active_readers); kref_put(&chan->ref, channel_release); } @@ -1258,8 +1262,8 @@ void lib_ring_buffer_switch_old_start(struct lib_ring_buffer *buf, lib_ring_buffer_check_deliver(config, buf, chan, offsets->old, commit_count, oldidx, tsc); lib_ring_buffer_write_commit_counter(config, buf, chan, oldidx, - offsets->old, commit_count, - config->cb.subbuffer_header_size()); + offsets->old + config->cb.subbuffer_header_size(), + commit_count); } /* @@ -1302,8 +1306,7 @@ void lib_ring_buffer_switch_old_end(struct lib_ring_buffer *buf, lib_ring_buffer_check_deliver(config, buf, chan, offsets->old - 1, commit_count, oldidx, tsc); lib_ring_buffer_write_commit_counter(config, buf, chan, oldidx, - offsets->old, commit_count, - padding_size); + offsets->old + padding_size, commit_count); } /* @@ -1345,8 +1348,8 @@ void lib_ring_buffer_switch_new_start(struct lib_ring_buffer *buf, lib_ring_buffer_check_deliver(config, buf, chan, offsets->begin, commit_count, beginidx, tsc); lib_ring_buffer_write_commit_counter(config, buf, chan, beginidx, - offsets->begin, commit_count, - config->cb.subbuffer_header_size()); + offsets->begin + config->cb.subbuffer_header_size(), + commit_count); } /*