All of lore.kernel.org
 help / color / mirror / Atom feed
* [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; 8+ 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] 8+ 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; 8+ 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, &not);
@@ -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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ 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; 8+ 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] 8+ messages in thread

end of thread, other threads:[~2009-11-04 11:10 UTC | newest]

Thread overview: 8+ 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

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.