Fix OOPS caused by reference of config pointer
[lttng-modules.git] / lttng-context-pid.c
index 956920fd71709104ff84e071ef82fec57c36e37e..698b242245a28b6e38484f65f21f129e53ab9774 100644 (file)
@@ -32,7 +32,7 @@ void pid_record(struct lttng_ctx_field *field,
 {
        pid_t pid;
 
-       pid = current->pid;
+       pid = task_tgid_nr(current);
        lib_ring_buffer_align_ctx(ctx, ltt_alignof(pid));
        chan->ops->event_write(ctx, &pid, sizeof(pid));
 }
@@ -40,11 +40,14 @@ void pid_record(struct lttng_ctx_field *field,
 int lttng_add_pid_to_ctx(struct lttng_ctx **ctx)
 {
        struct lttng_ctx_field *field;
-       int ret;
 
        field = lttng_append_context(ctx);
        if (!field)
-               return ret;
+               return -ENOMEM;
+       if (lttng_find_context(*ctx, "pid")) {
+               lttng_remove_context_field(ctx, field);
+               return -EEXIST;
+       }
        field->event_field.name = "pid";
        field->event_field.type.atype = atype_integer;
        field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT;
@@ -62,4 +65,4 @@ EXPORT_SYMBOL_GPL(lttng_add_pid_to_ctx);
 
 MODULE_LICENSE("GPL and additional rights");
 MODULE_AUTHOR("Mathieu Desnoyers");
-MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support");
+MODULE_DESCRIPTION("Linux Trace Toolkit PID Context");
This page took 0.023293 seconds and 4 git commands to generate.