perf: Introduce hw_perf_event->tp_target and ->tp_list
[firefly-linux-kernel-4.4.55.git] / kernel / events / core.c
index f9ff5493171d83208b140d19f8276fe3908e670b..e2d4323c6ae631edb2c3eb75f353f2df7c505f8c 100644 (file)
@@ -6155,18 +6155,21 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
 
        event->parent           = parent_event;
 
-       event->ns               = get_pid_ns(current->nsproxy->pid_ns);
+       event->ns               = get_pid_ns(task_active_pid_ns(current));
        event->id               = atomic64_inc_return(&perf_event_id);
 
        event->state            = PERF_EVENT_STATE_INACTIVE;
 
        if (task) {
                event->attach_state = PERF_ATTACH_TASK;
+
+               if (attr->type == PERF_TYPE_TRACEPOINT)
+                       event->hw.tp_target = task;
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
                /*
                 * hw_breakpoint is a bit difficult here..
                 */
-               if (attr->type == PERF_TYPE_BREAKPOINT)
+               else if (attr->type == PERF_TYPE_BREAKPOINT)
                        event->hw.bp_target = task;
 #endif
        }