projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: uninitialized variable in lib_ring_buffer_reserve_committed
[lttng-ust.git]
/
libringbuffer
/
frontend_internal.h
diff --git
a/libringbuffer/frontend_internal.h
b/libringbuffer/frontend_internal.h
index 10d6c4db789bbf498e3188a1a339c5e94223653f..ceb54e356a55d4bced2e8e976eb1a17417257d89 100644
(file)
--- a/
libringbuffer/frontend_internal.h
+++ b/
libringbuffer/frontend_internal.h
@@
-158,7
+158,8
@@
int last_tsc_overflow(const struct lttng_ust_lib_ring_buffer_config *config,
#endif
extern
#endif
extern
-int lib_ring_buffer_reserve_slow(struct lttng_ust_lib_ring_buffer_ctx *ctx);
+int lib_ring_buffer_reserve_slow(struct lttng_ust_lib_ring_buffer_ctx *ctx,
+ void *client_ctx);
extern
void lib_ring_buffer_switch_slow(struct lttng_ust_lib_ring_buffer *buf,
extern
void lib_ring_buffer_switch_slow(struct lttng_ust_lib_ring_buffer *buf,
@@
-233,6
+234,7
@@
int lib_ring_buffer_reserve_committed(const struct lttng_ust_lib_ring_buffer_con
struct lttng_ust_shm_handle *handle)
{
unsigned long offset, idx, commit_count;
struct lttng_ust_shm_handle *handle)
{
unsigned long offset, idx, commit_count;
+ struct commit_counters_hot *cc_hot;
CHAN_WARN_ON(chan, config->alloc != RING_BUFFER_ALLOC_PER_CPU);
CHAN_WARN_ON(chan, config->sync != RING_BUFFER_SYNC_PER_CPU);
CHAN_WARN_ON(chan, config->alloc != RING_BUFFER_ALLOC_PER_CPU);
CHAN_WARN_ON(chan, config->sync != RING_BUFFER_SYNC_PER_CPU);
@@
-248,7
+250,10
@@
int lib_ring_buffer_reserve_committed(const struct lttng_ust_lib_ring_buffer_con
do {
offset = v_read(config, &buf->offset);
idx = subbuf_index(offset, chan);
do {
offset = v_read(config, &buf->offset);
idx = subbuf_index(offset, chan);
- commit_count = v_read(config, &shmp_index(handle, buf->commit_hot, idx)->cc);
+ cc_hot = shmp_index(handle, buf->commit_hot, idx);
+ if (caa_unlikely(!cc_hot))
+ return 0;
+ commit_count = v_read(config, &cc_hot->cc);
} while (offset != v_read(config, &buf->offset));
return ((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order)
} while (offset != v_read(config, &buf->offset));
return ((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order)
This page took
0.023094 seconds
and
4
git commands to generate.