59 lines
1.8 KiB
Diff
59 lines
1.8 KiB
Diff
From: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|
Date: Mon, 26 Jun 2017 17:49:26 -0500
|
|
Subject: [PATCH 25/32] tracing: Allow whitespace to surround hist trigger
|
|
filter
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.11/older/patches-4.11.9-rt7.tar.xz
|
|
|
|
The existing code only allows for one space before and after the 'if'
|
|
specifying the filter for a hist trigger. Add code to make that more
|
|
permissive as far as whitespace goes.
|
|
|
|
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
---
|
|
kernel/trace/trace_events_hist.c | 19 +++++++++++++++----
|
|
1 file changed, 15 insertions(+), 4 deletions(-)
|
|
|
|
--- a/kernel/trace/trace_events_hist.c
|
|
+++ b/kernel/trace/trace_events_hist.c
|
|
@@ -4632,7 +4632,7 @@ static int event_hist_trigger_func(struc
|
|
struct event_trigger_ops *trigger_ops;
|
|
struct hist_trigger_data *hist_data;
|
|
bool remove = false;
|
|
- char *trigger;
|
|
+ char *trigger, *p;
|
|
int ret = 0;
|
|
|
|
if (!param)
|
|
@@ -4642,9 +4642,19 @@ static int event_hist_trigger_func(struc
|
|
remove = true;
|
|
|
|
/* separate the trigger from the filter (k:v [if filter]) */
|
|
- trigger = strsep(¶m, " \t");
|
|
- if (!trigger)
|
|
- return -EINVAL;
|
|
+ trigger = param;
|
|
+ p = strstr(param, " if");
|
|
+ if (!p)
|
|
+ p = strstr(param, "\tif");
|
|
+ if (p) {
|
|
+ if (p == trigger)
|
|
+ return -EINVAL;
|
|
+ param = p + 1;
|
|
+ param = strstrip(param);
|
|
+ *p = '\0';
|
|
+ trigger = strstrip(trigger);
|
|
+ } else
|
|
+ param = NULL;
|
|
|
|
attrs = parse_hist_trigger_attrs(trigger);
|
|
if (IS_ERR(attrs))
|
|
@@ -4694,6 +4704,7 @@ static int event_hist_trigger_func(struc
|
|
}
|
|
|
|
ret = cmd_ops->reg(glob, trigger_ops, trigger_data, file);
|
|
+
|
|
/*
|
|
* The above returns on success the # of triggers registered,
|
|
* but if it didn't register any it returns zero. Consider no
|