Lines Matching refs:tp_event

26 static int perf_trace_event_perm(struct trace_event_call *tp_event,  in perf_trace_event_perm()  argument
29 if (tp_event->perf_perm) { in perf_trace_event_perm()
30 int ret = tp_event->perf_perm(tp_event, p_event); in perf_trace_event_perm()
48 if (ftrace_event_is_function(tp_event)) { in perf_trace_event_perm()
77 if (tp_event->flags & TRACE_EVENT_FL_CAP_ANY) in perf_trace_event_perm()
91 static int perf_trace_event_reg(struct trace_event_call *tp_event, in perf_trace_event_reg() argument
98 p_event->tp_event = tp_event; in perf_trace_event_reg()
99 if (tp_event->perf_refcount++ > 0) in perf_trace_event_reg()
109 tp_event->perf_events = list; in perf_trace_event_reg()
124 ret = tp_event->class->reg(tp_event, TRACE_REG_PERF_REGISTER, NULL); in perf_trace_event_reg()
141 if (!--tp_event->perf_refcount) { in perf_trace_event_reg()
142 free_percpu(tp_event->perf_events); in perf_trace_event_reg()
143 tp_event->perf_events = NULL; in perf_trace_event_reg()
151 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_unreg() local
154 if (--tp_event->perf_refcount > 0) in perf_trace_event_unreg()
157 tp_event->class->reg(tp_event, TRACE_REG_PERF_UNREGISTER, NULL); in perf_trace_event_unreg()
165 free_percpu(tp_event->perf_events); in perf_trace_event_unreg()
166 tp_event->perf_events = NULL; in perf_trace_event_unreg()
175 module_put(tp_event->mod); in perf_trace_event_unreg()
180 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_open() local
181 return tp_event->class->reg(tp_event, TRACE_REG_PERF_OPEN, p_event); in perf_trace_event_open()
186 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_close() local
187 tp_event->class->reg(tp_event, TRACE_REG_PERF_CLOSE, p_event); in perf_trace_event_close()
190 static int perf_trace_event_init(struct trace_event_call *tp_event, in perf_trace_event_init() argument
195 ret = perf_trace_event_perm(tp_event, p_event); in perf_trace_event_init()
199 ret = perf_trace_event_reg(tp_event, p_event); in perf_trace_event_init()
214 struct trace_event_call *tp_event; in perf_trace_init() local
219 list_for_each_entry(tp_event, &ftrace_events, list) { in perf_trace_init()
220 if (tp_event->event.type == event_id && in perf_trace_init()
221 tp_event->class && tp_event->class->reg && in perf_trace_init()
222 try_module_get(tp_event->mod)) { in perf_trace_init()
223 ret = perf_trace_event_init(tp_event, p_event); in perf_trace_init()
225 module_put(tp_event->mod); in perf_trace_init()
247 struct trace_event_call *tp_event; in perf_kprobe_init() local
267 tp_event = create_local_trace_kprobe( in perf_kprobe_init()
270 if (IS_ERR(tp_event)) { in perf_kprobe_init()
271 ret = PTR_ERR(tp_event); in perf_kprobe_init()
276 ret = perf_trace_event_init(tp_event, p_event); in perf_kprobe_init()
278 destroy_local_trace_kprobe(tp_event); in perf_kprobe_init()
292 destroy_local_trace_kprobe(p_event->tp_event); in perf_kprobe_destroy()
302 struct trace_event_call *tp_event; in perf_uprobe_init() local
318 tp_event = create_local_trace_uprobe(path, p_event->attr.probe_offset, in perf_uprobe_init()
320 if (IS_ERR(tp_event)) { in perf_uprobe_init()
321 ret = PTR_ERR(tp_event); in perf_uprobe_init()
331 ret = perf_trace_event_init(tp_event, p_event); in perf_uprobe_init()
333 destroy_local_trace_uprobe(tp_event); in perf_uprobe_init()
346 destroy_local_trace_uprobe(p_event->tp_event); in perf_uprobe_destroy()
352 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_add() local
362 if (!tp_event->class->reg(tp_event, TRACE_REG_PERF_ADD, p_event)) { in perf_trace_add()
366 pcpu_list = tp_event->perf_events; in perf_trace_add()
379 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_del() local
386 if (!tp_event->class->reg(tp_event, TRACE_REG_PERF_DEL, p_event)) in perf_trace_del()