diff options
Diffstat (limited to 'kernel/trace')
| -rw-r--r-- | kernel/trace/ftrace.c | 27 | ||||
| -rw-r--r-- | kernel/trace/trace_events_trigger.c | 2 | 
2 files changed, 5 insertions, 24 deletions
| diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 1fd4b9479210..4a54a25afa2f 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -4330,16 +4330,11 @@ static void ftrace_init_module(struct module *mod,  	ftrace_process_locs(mod, start, end);  } -static int ftrace_module_notify_enter(struct notifier_block *self, -				      unsigned long val, void *data) +void ftrace_module_init(struct module *mod)  { -	struct module *mod = data; - -	if (val == MODULE_STATE_COMING) -		ftrace_init_module(mod, mod->ftrace_callsites, -				   mod->ftrace_callsites + -				   mod->num_ftrace_callsites); -	return 0; +	ftrace_init_module(mod, mod->ftrace_callsites, +			   mod->ftrace_callsites + +			   mod->num_ftrace_callsites);  }  static int ftrace_module_notify_exit(struct notifier_block *self, @@ -4353,11 +4348,6 @@ static int ftrace_module_notify_exit(struct notifier_block *self,  	return 0;  }  #else -static int ftrace_module_notify_enter(struct notifier_block *self, -				      unsigned long val, void *data) -{ -	return 0; -}  static int ftrace_module_notify_exit(struct notifier_block *self,  				     unsigned long val, void *data)  { @@ -4365,11 +4355,6 @@ static int ftrace_module_notify_exit(struct notifier_block *self,  }  #endif /* CONFIG_MODULES */ -struct notifier_block ftrace_module_enter_nb = { -	.notifier_call = ftrace_module_notify_enter, -	.priority = INT_MAX,	/* Run before anything that can use kprobes */ -}; -  struct notifier_block ftrace_module_exit_nb = {  	.notifier_call = ftrace_module_notify_exit,  	.priority = INT_MIN,	/* Run after anything that can remove kprobes */ @@ -4403,10 +4388,6 @@ void __init ftrace_init(void)  				  __start_mcount_loc,  				  __stop_mcount_loc); -	ret = register_module_notifier(&ftrace_module_enter_nb); -	if (ret) -		pr_warning("Failed to register trace ftrace module enter notifier\n"); -  	ret = register_module_notifier(&ftrace_module_exit_nb);  	if (ret)  		pr_warning("Failed to register trace ftrace module exit notifier\n"); diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c index 925f537f07d1..4747b476a030 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c @@ -77,7 +77,7 @@ event_triggers_call(struct ftrace_event_file *file, void *rec)  			data->ops->func(data);  			continue;  		} -		filter = rcu_dereference(data->filter); +		filter = rcu_dereference_sched(data->filter);  		if (filter && !filter_match_preds(filter, rec))  			continue;  		if (data->cmd_ops->post_trigger) { |