projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ring buffer: handle shmp errors
[lttng-ust.git]
/
libringbuffer
/
frontend_api.h
diff --git
a/libringbuffer/frontend_api.h
b/libringbuffer/frontend_api.h
index eea2a8db579686995d1c204995fdb4dcda51668b..140159739feebc954f68d39b33806e3778f4ca01 100644
(file)
--- a/
libringbuffer/frontend_api.h
+++ b/
libringbuffer/frontend_api.h
@@
-167,6
+167,8
@@
int lib_ring_buffer_reserve(const struct lttng_ust_lib_ring_buffer_config *confi
buf = shmp(handle, chan->backend.buf[ctx->cpu].shmp);
else
buf = shmp(handle, chan->backend.buf[0].shmp);
buf = shmp(handle, chan->backend.buf[ctx->cpu].shmp);
else
buf = shmp(handle, chan->backend.buf[0].shmp);
+ if (caa_unlikely(!buf))
+ return -EIO;
if (caa_unlikely(uatomic_read(&buf->record_disabled)))
return -EAGAIN;
ctx->buf = buf;
if (caa_unlikely(uatomic_read(&buf->record_disabled)))
return -EAGAIN;
ctx->buf = buf;
@@
-253,10
+255,13
@@
void lib_ring_buffer_commit(const struct lttng_ust_lib_ring_buffer_config *confi
struct commit_counters_hot *cc_hot = shmp_index(handle,
buf->commit_hot, endidx);
struct commit_counters_hot *cc_hot = shmp_index(handle,
buf->commit_hot, endidx);
+ if (caa_unlikely(!cc_hot))
+ return;
+
/*
* Must count record before incrementing the commit count.
*/
/*
* Must count record before incrementing the commit count.
*/
- subbuffer_count_record(config, &buf->backend, endidx, handle);
+ subbuffer_count_record(config,
ctx,
&buf->backend, endidx, handle);
/*
* Order all writes to buffer before the commit count update that will
/*
* Order all writes to buffer before the commit count update that will
This page took
0.023358 seconds
and
4
git commands to generate.