* [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write()
@ 2009-11-03 0:55 Li Zefan
2009-11-03 0:56 ` [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Li Zefan @ 2009-11-03 0:55 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Steven Rostedt, Frederic Weisbecker, Jiri Olsa, LKML
# echo 'do_open : foo' > set_ftrace_filter
(still holding ftrace_regex_lock when returning to user space!)
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
This patch is for .32
---
kernel/trace/ftrace.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 1ed514f..7cb6f19 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2199,15 +2199,15 @@ ftrace_regex_write(struct file *file, const char __user *ubuf,
ret = ftrace_process_regex(parser->buffer,
parser->idx, enable);
if (ret)
- goto out;
+ goto out_unlock;
trace_parser_clear(parser);
}
ret = read;
-
+out_unlock:
mutex_unlock(&ftrace_regex_lock);
-out:
+
return ret;
}
--
1.6.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter
2009-11-03 0:55 [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Li Zefan
@ 2009-11-03 0:56 ` Li Zefan
2009-11-04 1:44 ` Frederic Weisbecker
2009-11-03 0:57 ` [PATCH 3/3] function-graph: Allow writing the same val to set_graph_function Li Zefan
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Li Zefan @ 2009-11-03 0:56 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Steven Rostedt, Frederic Weisbecker, LKML
Currently it doesn't warn user on invald value:
# echo nonexist_symbol > set_ftrace_filter
Better make it return failure.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/trace/ftrace.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 7cb6f19..e0184b7 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1724,7 +1724,7 @@ ftrace_match_record(struct dyn_ftrace *rec, char *regex, int len, int type)
return ftrace_match(str, regex, len, type);
}
-static void ftrace_match_records(char *buff, int len, int enable)
+static int ftrace_match_records(char *buff, int len, int enable)
{
unsigned int search_len;
struct ftrace_page *pg;
@@ -1733,6 +1733,7 @@ static void ftrace_match_records(char *buff, int len, int enable)
char *search;
int type;
int not;
+ int found = 0;
flag = enable ? FTRACE_FL_FILTER : FTRACE_FL_NOTRACE;
type = filter_parse_regex(buff, len, &search, ¬);
@@ -1750,6 +1751,7 @@ static void ftrace_match_records(char *buff, int len, int enable)
rec->flags &= ~flag;
else
rec->flags |= flag;
+ found = 1;
}
/*
* Only enable filtering if we have a function that
@@ -1759,6 +1761,8 @@ static void ftrace_match_records(char *buff, int len, int enable)
ftrace_filtered = 1;
} while_for_each_ftrace_rec();
mutex_unlock(&ftrace_lock);
+
+ return found;
}
static int
@@ -2151,8 +2155,10 @@ static int ftrace_process_regex(char *buff, int len, int enable)
func = strsep(&next, ":");
if (!next) {
- ftrace_match_records(func, len, enable);
- return 0;
+ if (ftrace_match_records(func, len, enable))
+ return 0;
+ else
+ return ret;
}
/* command found */
--
1.6.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] function-graph: Allow writing the same val to set_graph_function
2009-11-03 0:55 [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Li Zefan
2009-11-03 0:56 ` [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
@ 2009-11-03 0:57 ` Li Zefan
2009-11-03 8:26 ` [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Frederic Weisbecker
2009-11-04 11:09 ` [tip:tracing/urgent] ftrace: Fix unmatched " tip-bot for Li Zefan
3 siblings, 0 replies; 9+ messages in thread
From: Li Zefan @ 2009-11-03 0:57 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Steven Rostedt, Frederic Weisbecker, Jiri Olsa, LKML
# echo 'do_open' > set_graph_function
# echo 'do_open' >> set_graph_function
bash: echo: write error: Invalid argument
Make it valid to write the same value to set_graph_function.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/trace/ftrace.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index e0184b7..eaf6a4d 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2549,10 +2549,9 @@ ftrace_set_func(unsigned long *array, int *idx, char *buffer)
exists = true;
break;
}
- if (!exists) {
+ if (!exists)
array[(*idx)++] = rec->ip;
- found = 1;
- }
+ found = 1;
}
} while_for_each_ftrace_rec();
--
1.6.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write()
2009-11-03 0:55 [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Li Zefan
2009-11-03 0:56 ` [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
2009-11-03 0:57 ` [PATCH 3/3] function-graph: Allow writing the same val to set_graph_function Li Zefan
@ 2009-11-03 8:26 ` Frederic Weisbecker
2009-11-04 11:09 ` [tip:tracing/urgent] ftrace: Fix unmatched " tip-bot for Li Zefan
3 siblings, 0 replies; 9+ messages in thread
From: Frederic Weisbecker @ 2009-11-03 8:26 UTC (permalink / raw)
To: Li Zefan; +Cc: Ingo Molnar, Steven Rostedt, Jiri Olsa, LKML
On Tue, Nov 03, 2009 at 08:55:38AM +0800, Li Zefan wrote:
> # echo 'do_open : foo' > set_ftrace_filter
> (still holding ftrace_regex_lock when returning to user space!)
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter
2009-11-03 0:56 ` [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
@ 2009-11-04 1:44 ` Frederic Weisbecker
2009-11-04 2:58 ` Li Zefan
0 siblings, 1 reply; 9+ messages in thread
From: Frederic Weisbecker @ 2009-11-04 1:44 UTC (permalink / raw)
To: Li Zefan; +Cc: Ingo Molnar, Steven Rostedt, LKML
On Tue, Nov 03, 2009 at 08:56:28AM +0800, Li Zefan wrote:
> Currently it doesn't warn user on invald value:
>
> # echo nonexist_symbol > set_ftrace_filter
>
> Better make it return failure.
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> ---
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
But shouldn't we have the same kind of check from
ftrace_match_module_records() if we haven't matched
anything with the regex?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter
2009-11-04 1:44 ` Frederic Weisbecker
@ 2009-11-04 2:58 ` Li Zefan
2009-11-04 4:43 ` Steven Rostedt
0 siblings, 1 reply; 9+ messages in thread
From: Li Zefan @ 2009-11-04 2:58 UTC (permalink / raw)
To: Frederic Weisbecker; +Cc: Ingo Molnar, Steven Rostedt, LKML
Frederic Weisbecker wrote:
> On Tue, Nov 03, 2009 at 08:56:28AM +0800, Li Zefan wrote:
>> Currently it doesn't warn user on invald value:
>>
>> # echo nonexist_symbol > set_ftrace_filter
>>
>> Better make it return failure.
>>
>> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
>> ---
>
>
> Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
>
> But shouldn't we have the same kind of check from
> ftrace_match_module_records() if we haven't matched
> anything with the regex?
>
Right, I overlooked it.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter
2009-11-04 2:58 ` Li Zefan
@ 2009-11-04 4:43 ` Steven Rostedt
0 siblings, 0 replies; 9+ messages in thread
From: Steven Rostedt @ 2009-11-04 4:43 UTC (permalink / raw)
To: Li Zefan; +Cc: Frederic Weisbecker, Ingo Molnar, LKML
On Wed, 2009-11-04 at 10:58 +0800, Li Zefan wrote:
> Frederic Weisbecker wrote:
> > On Tue, Nov 03, 2009 at 08:56:28AM +0800, Li Zefan wrote:
> >> Currently it doesn't warn user on invald value:
> >>
> >> # echo nonexist_symbol > set_ftrace_filter
> >>
> >> Better make it return failure.
> >>
> >> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> >> ---
> >
> >
> > Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
> >
> > But shouldn't we have the same kind of check from
> > ftrace_match_module_records() if we haven't matched
> > anything with the regex?
> >
>
> Right, I overlooked it.
>
Only the first patch is urgent. I'll get that out and wait for you to
update these other two (or just this one).
Thanks,
-- Steve
^ permalink raw reply [flat|nested] 9+ messages in thread
* [tip:tracing/urgent] ftrace: Fix unmatched locking in ftrace_regex_write()
2009-11-03 0:55 [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Li Zefan
` (2 preceding siblings ...)
2009-11-03 8:26 ` [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Frederic Weisbecker
@ 2009-11-04 11:09 ` tip-bot for Li Zefan
3 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Li Zefan @ 2009-11-04 11:09 UTC (permalink / raw)
To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, rostedt, lizf, tglx
Commit-ID: ed146b25942b428f8e8056587b7638ce76573c2f
Gitweb: http://git.kernel.org/tip/ed146b25942b428f8e8056587b7638ce76573c2f
Author: Li Zefan <lizf@cn.fujitsu.com>
AuthorDate: Tue, 3 Nov 2009 08:55:38 +0800
Committer: Steven Rostedt <rostedt@goodmis.org>
CommitDate: Wed, 4 Nov 2009 01:42:10 -0500
ftrace: Fix unmatched locking in ftrace_regex_write()
When a command is passed to the set_ftrace_filter, then
the ftrace_regex_lock is still held going back to user space.
# echo 'do_open : foo' > set_ftrace_filter
(still holding ftrace_regex_lock when returning to user space!)
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
LKML-Reference: <4AEF7F8A.3080300@cn.fujitsu.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/ftrace.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 9c451a1..6dc4e5e 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2222,15 +2222,15 @@ ftrace_regex_write(struct file *file, const char __user *ubuf,
ret = ftrace_process_regex(parser->buffer,
parser->idx, enable);
if (ret)
- goto out;
+ goto out_unlock;
trace_parser_clear(parser);
}
ret = read;
-
+out_unlock:
mutex_unlock(&ftrace_regex_lock);
-out:
+
return ret;
}
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] function-graph: Allow writing the same val to set_graph_function
2009-11-04 5:15 [PATCH 1/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
@ 2009-11-04 5:15 ` Li Zefan
0 siblings, 0 replies; 9+ messages in thread
From: Li Zefan @ 2009-11-04 5:15 UTC (permalink / raw)
To: Steven Rostedt; +Cc: Frederic Weisbecker, Ingo Molnar, LKML
# echo 'do_open' > set_graph_function
# echo 'do_open' >> set_graph_function
bash: echo: write error: Invalid argument
Make it valid to write the same value to set_graph_function.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/trace/ftrace.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index b1acfb1..13f256a 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -2552,10 +2552,9 @@ ftrace_set_func(unsigned long *array, int *idx, char *buffer)
exists = true;
break;
}
- if (!exists) {
+ if (!exists)
array[(*idx)++] = rec->ip;
- found = 1;
- }
+ found = 1;
}
} while_for_each_ftrace_rec();
--
1.6.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-11-04 11:10 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-03 0:55 [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Li Zefan
2009-11-03 0:56 ` [PATCH 2/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
2009-11-04 1:44 ` Frederic Weisbecker
2009-11-04 2:58 ` Li Zefan
2009-11-04 4:43 ` Steven Rostedt
2009-11-03 0:57 ` [PATCH 3/3] function-graph: Allow writing the same val to set_graph_function Li Zefan
2009-11-03 8:26 ` [PATCH 1/3] ftrace: Fix unmatching locking in ftrace_regex_write() Frederic Weisbecker
2009-11-04 11:09 ` [tip:tracing/urgent] ftrace: Fix unmatched " tip-bot for Li Zefan
2009-11-04 5:15 [PATCH 1/3] ftrace: Return EINVAL when writing invalid val to set_ftrace_filter Li Zefan
2009-11-04 5:15 ` [PATCH 3/3] function-graph: Allow writing the same val to set_graph_function Li Zefan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.