Lines Matching refs:tp_event
24 static int perf_trace_event_perm(struct ftrace_event_call *tp_event, in perf_trace_event_perm() argument
27 if (tp_event->perf_perm) { in perf_trace_event_perm()
28 int ret = tp_event->perf_perm(tp_event, p_event); in perf_trace_event_perm()
46 if (ftrace_event_is_function(tp_event)) { in perf_trace_event_perm()
72 if (tp_event->flags & TRACE_EVENT_FL_CAP_ANY) in perf_trace_event_perm()
86 static int perf_trace_event_reg(struct ftrace_event_call *tp_event, in perf_trace_event_reg() argument
93 p_event->tp_event = tp_event; in perf_trace_event_reg()
94 if (tp_event->perf_refcount++ > 0) in perf_trace_event_reg()
104 tp_event->perf_events = list; in perf_trace_event_reg()
119 ret = tp_event->class->reg(tp_event, TRACE_REG_PERF_REGISTER, NULL); in perf_trace_event_reg()
136 if (!--tp_event->perf_refcount) { in perf_trace_event_reg()
137 free_percpu(tp_event->perf_events); in perf_trace_event_reg()
138 tp_event->perf_events = NULL; in perf_trace_event_reg()
146 struct ftrace_event_call *tp_event = p_event->tp_event; in perf_trace_event_unreg() local
149 if (--tp_event->perf_refcount > 0) in perf_trace_event_unreg()
152 tp_event->class->reg(tp_event, TRACE_REG_PERF_UNREGISTER, NULL); in perf_trace_event_unreg()
160 free_percpu(tp_event->perf_events); in perf_trace_event_unreg()
161 tp_event->perf_events = NULL; in perf_trace_event_unreg()
170 module_put(tp_event->mod); in perf_trace_event_unreg()
175 struct ftrace_event_call *tp_event = p_event->tp_event; in perf_trace_event_open() local
176 return tp_event->class->reg(tp_event, TRACE_REG_PERF_OPEN, p_event); in perf_trace_event_open()
181 struct ftrace_event_call *tp_event = p_event->tp_event; in perf_trace_event_close() local
182 tp_event->class->reg(tp_event, TRACE_REG_PERF_CLOSE, p_event); in perf_trace_event_close()
185 static int perf_trace_event_init(struct ftrace_event_call *tp_event, in perf_trace_event_init() argument
190 ret = perf_trace_event_perm(tp_event, p_event); in perf_trace_event_init()
194 ret = perf_trace_event_reg(tp_event, p_event); in perf_trace_event_init()
209 struct ftrace_event_call *tp_event; in perf_trace_init() local
214 list_for_each_entry(tp_event, &ftrace_events, list) { in perf_trace_init()
215 if (tp_event->event.type == event_id && in perf_trace_init()
216 tp_event->class && tp_event->class->reg && in perf_trace_init()
217 try_module_get(tp_event->mod)) { in perf_trace_init()
218 ret = perf_trace_event_init(tp_event, p_event); in perf_trace_init()
220 module_put(tp_event->mod); in perf_trace_init()
239 struct ftrace_event_call *tp_event = p_event->tp_event; in perf_trace_add() local
243 pcpu_list = tp_event->perf_events; in perf_trace_add()
253 return tp_event->class->reg(tp_event, TRACE_REG_PERF_ADD, p_event); in perf_trace_add()
258 struct ftrace_event_call *tp_event = p_event->tp_event; in perf_trace_del() local
260 tp_event->class->reg(tp_event, TRACE_REG_PERF_DEL, p_event); in perf_trace_del()