Fix: event ctx get size should be after chan ctx
[lttng-modules.git] / lttng-ring-buffer-client.h
index 4fffab981affbd2064bc2724bb03eabe67f0acc5..625d7b4526ce81853ee1514b95ed1e13b9193fe7 100644 (file)
@@ -124,13 +124,14 @@ void ctx_record(struct lib_ring_buffer_ctx *bufctx,
  * contains.
  */
 static __inline__
-unsigned char record_header_size(const struct lib_ring_buffer_config *config,
+size_t record_header_size(const struct lib_ring_buffer_config *config,
                                 struct channel *chan, size_t offset,
                                 size_t *pre_header_padding,
                                 struct lib_ring_buffer_ctx *ctx)
 {
        struct lttng_channel *lttng_chan = channel_get_private(chan);
-       struct lttng_event *event = ctx->priv;
+       struct lttng_probe_ctx *lttng_probe_ctx = ctx->priv;
+       struct lttng_event *event = lttng_probe_ctx->event;
        size_t orig_offset = offset;
        size_t padding;
 
@@ -169,8 +170,8 @@ unsigned char record_header_size(const struct lib_ring_buffer_config *config,
                padding = 0;
                WARN_ON_ONCE(1);
        }
-       offset += ctx_get_size(offset, event->ctx);
        offset += ctx_get_size(offset, lttng_chan->ctx);
+       offset += ctx_get_size(offset, event->ctx);
 
        *pre_header_padding = padding;
        return offset - orig_offset;
@@ -198,7 +199,8 @@ void lttng_write_event_header(const struct lib_ring_buffer_config *config,
                            uint32_t event_id)
 {
        struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
-       struct lttng_event *event = ctx->priv;
+       struct lttng_probe_ctx *lttng_probe_ctx = ctx->priv;
+       struct lttng_event *event = lttng_probe_ctx->event;
 
        if (unlikely(ctx->rflags))
                goto slow_path;
@@ -249,7 +251,8 @@ void lttng_write_event_header_slow(const struct lib_ring_buffer_config *config,
                                 uint32_t event_id)
 {
        struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
-       struct lttng_event *event = ctx->priv;
+       struct lttng_probe_ctx *lttng_probe_ctx = ctx->priv;
+       struct lttng_event *event = lttng_probe_ctx->event;
 
        switch (lttng_chan->header_type) {
        case 1: /* compact */
This page took 0.027334 seconds and 4 git commands to generate.