diff options
Diffstat (limited to 'kernel/trace/trace_events_trigger.c')
| -rw-r--r-- | kernel/trace/trace_events_trigger.c | 21 | 
1 files changed, 19 insertions, 2 deletions
| diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c index 3a74736da363..f725802160c0 100644 --- a/kernel/trace/trace_events_trigger.c +++ b/kernel/trace/trace_events_trigger.c @@ -216,11 +216,17 @@ static int event_trigger_regex_open(struct inode *inode, struct file *file)  int trigger_process_regex(struct trace_event_file *file, char *buff)  { -	char *command, *next = buff; +	char *command, *next;  	struct event_command *p;  	int ret = -EINVAL; +	next = buff = skip_spaces(buff);  	command = strsep(&next, ": \t"); +	if (next) { +		next = skip_spaces(next); +		if (!*next) +			next = NULL; +	}  	command = (command[0] != '!') ? command : command + 1;  	mutex_lock(&trigger_cmd_mutex); @@ -630,8 +636,14 @@ event_trigger_callback(struct event_command *cmd_ops,  	int ret;  	/* separate the trigger from the filter (t:n [if filter]) */ -	if (param && isdigit(param[0])) +	if (param && isdigit(param[0])) {  		trigger = strsep(¶m, " \t"); +		if (param) { +			param = skip_spaces(param); +			if (!*param) +				param = NULL; +		} +	}  	trigger_ops = cmd_ops->get_trigger_ops(cmd, trigger); @@ -1368,6 +1380,11 @@ int event_enable_trigger_func(struct event_command *cmd_ops,  	trigger = strsep(¶m, " \t");  	if (!trigger)  		return -EINVAL; +	if (param) { +		param = skip_spaces(param); +		if (!*param) +			param = NULL; +	}  	system = strsep(&trigger, ":");  	if (!trigger) |