tracing histograms: Simplify parse_actions() function
The parse_actions() function uses 'len = str_has_prefix()' to test which action is in the string being parsed. But then it goes and repeats the logic for each different action. This logic can be simplified and duplicate code can be removed as 'len' contains the length of the found prefix which should be used for all actions. Link: https://lore.kernel.org/all/20240107112044.6702cb66@gandalf.local.home/ Link: https://lore.kernel.org/linux-trace-kernel/20240107203258.37e26d2b@gandalf.local.home Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Andy Shevchenko <andy@kernel.org> Cc: Tom Zanussi <zanussi@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
2654769110
commit
4f1991a92c
@ -4805,38 +4805,37 @@ static int parse_actions(struct hist_trigger_data *hist_data)
|
||||
int len;
|
||||
|
||||
for (i = 0; i < hist_data->attrs->n_actions; i++) {
|
||||
enum handler_id hid = 0;
|
||||
char *action_str;
|
||||
|
||||
str = hist_data->attrs->action_str[i];
|
||||
|
||||
if ((len = str_has_prefix(str, "onmatch("))) {
|
||||
char *action_str = str + len;
|
||||
if ((len = str_has_prefix(str, "onmatch(")))
|
||||
hid = HANDLER_ONMATCH;
|
||||
else if ((len = str_has_prefix(str, "onmax(")))
|
||||
hid = HANDLER_ONMAX;
|
||||
else if ((len = str_has_prefix(str, "onchange(")))
|
||||
hid = HANDLER_ONCHANGE;
|
||||
|
||||
action_str = str + len;
|
||||
|
||||
switch (hid) {
|
||||
case HANDLER_ONMATCH:
|
||||
data = onmatch_parse(tr, action_str);
|
||||
if (IS_ERR(data)) {
|
||||
ret = PTR_ERR(data);
|
||||
break;
|
||||
case HANDLER_ONMAX:
|
||||
case HANDLER_ONCHANGE:
|
||||
data = track_data_parse(hist_data, action_str, hid);
|
||||
break;
|
||||
default:
|
||||
data = ERR_PTR(-EINVAL);
|
||||
break;
|
||||
}
|
||||
} else if ((len = str_has_prefix(str, "onmax("))) {
|
||||
char *action_str = str + len;
|
||||
|
||||
data = track_data_parse(hist_data, action_str,
|
||||
HANDLER_ONMAX);
|
||||
if (IS_ERR(data)) {
|
||||
ret = PTR_ERR(data);
|
||||
break;
|
||||
}
|
||||
} else if ((len = str_has_prefix(str, "onchange("))) {
|
||||
char *action_str = str + len;
|
||||
|
||||
data = track_data_parse(hist_data, action_str,
|
||||
HANDLER_ONCHANGE);
|
||||
if (IS_ERR(data)) {
|
||||
ret = PTR_ERR(data);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
|
||||
hist_data->actions[hist_data->n_actions++] = data;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user