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; 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, &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] 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.