|
@@ -96,7 +96,9 @@ int perf_trace_init(struct perf_event *p_event)
|
|
mutex_lock(&event_mutex);
|
|
mutex_lock(&event_mutex);
|
|
list_for_each_entry(tp_event, &ftrace_events, list) {
|
|
list_for_each_entry(tp_event, &ftrace_events, list) {
|
|
if (tp_event->event.type == event_id &&
|
|
if (tp_event->event.type == event_id &&
|
|
- tp_event->class && tp_event->class->perf_probe &&
|
|
|
|
|
|
+ tp_event->class &&
|
|
|
|
+ (tp_event->class->perf_probe ||
|
|
|
|
+ tp_event->class->reg) &&
|
|
try_module_get(tp_event->mod)) {
|
|
try_module_get(tp_event->mod)) {
|
|
ret = perf_trace_event_init(tp_event, p_event);
|
|
ret = perf_trace_event_init(tp_event, p_event);
|
|
break;
|
|
break;
|