From: Mathieu Desnoyers Date: Sat, 24 Oct 2015 07:42:10 +0000 (-0400) Subject: Cleanup callstack context X-Git-Tag: v2.11.0-rc1~31 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=3c1a57e8ce82366ce96774e4ac1d7481c561cc4c;p=lttng-modules.git Cleanup callstack context Signed-off-by: Mathieu Desnoyers --- diff --git a/lttng-context-callstack.c b/lttng-context-callstack.c index 8c3ee3dc..d95cbc2e 100644 --- a/lttng-context-callstack.c +++ b/lttng-context-callstack.c @@ -119,7 +119,7 @@ struct stack_trace *stack_trace_context(struct lttng_ctx_field *field, { int nesting; struct lttng_cs *cs; - struct field_data *fdata = field->private; + struct field_data *fdata = field->priv; /* * get_cpu() is not required, preemption is already @@ -147,7 +147,7 @@ size_t lttng_callstack_get_size(size_t offset, struct lttng_ctx_field *field, { size_t size = 0; struct stack_trace *trace; - struct field_data *fdata = field->private; + struct field_data *fdata = field->priv; /* do not write data if no space is available */ trace = stack_trace_context(field, ctx); @@ -239,7 +239,7 @@ error_alloc: static void lttng_callstack_destroy(struct lttng_ctx_field *field) { - struct field_data *fdata = field->private; + struct field_data *fdata = field->priv; field_data_free(fdata); } @@ -259,7 +259,6 @@ int __lttng_add_callstack_generic(struct lttng_ctx **ctx, int mode) if (!field) return -ENOMEM; if (lttng_find_context(*ctx, ctx_name)) { - printk("%s lttng_find_context failed\n", ctx_name); ret = -EEXIST; goto error_find; } @@ -289,10 +288,9 @@ int __lttng_add_callstack_generic(struct lttng_ctx **ctx, int mode) field->get_size_arg = lttng_callstack_get_size; field->record = lttng_callstack_record; - field->private = fdata; + field->priv = fdata; field->destroy = lttng_callstack_destroy; wrapper_vmalloc_sync_all(); - printk("lttng add-context %s\n", ctx_name); return 0; error_create: diff --git a/lttng-events.h b/lttng-events.h index aca64545..2b137052 100644 --- a/lttng-events.h +++ b/lttng-events.h @@ -219,8 +219,12 @@ struct lttng_ctx_field { struct lttng_perf_counter_field *perf_counter; } u; void (*destroy)(struct lttng_ctx_field *field); - /* private data to keep state between get_size and record */ - void *private; + /* + * Private data to keep state between get_size and record. + * User must perform its own synchronization to protect against + * concurrent and reentrant contexts. + */ + void *priv; }; struct lttng_ctx {