diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-03-18 03:58:44 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-03-18 05:10:17 -0400 |
commit | 50d88758a3f9787cbdbdbc030560b815721eab4b (patch) | |
tree | 02e5c47c5c5bd05e578d1883ccaa1e3bc13c703a /kernel/trace/trace.c | |
parent | 2c7eea4c62ba090b7f4583c3d7337ea0019be900 (diff) |
tracing: fix trace_find_cmdline()
Impact: prevent stale command line output
In case there is no valid command line mapping for a pid
trace_find_cmdline() returns without updating the comm buffer. The
trace dump keeps the previous entry which results in confusing trace
output:
<idle>-0 [000] 280.702056 ....
<idle>-23456 [000] 280.702080 ....
Update the comm buffer with "<...>" when no mapping is found.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Steven Rostedt <srostedt@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r-- | kernel/trace/trace.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index ca673c475687..06c69a260328 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -787,12 +787,11 @@ void trace_find_cmdline(int pid, char comm[]) | |||
787 | 787 | ||
788 | __raw_spin_lock(&trace_cmdline_lock); | 788 | __raw_spin_lock(&trace_cmdline_lock); |
789 | map = map_pid_to_cmdline[pid]; | 789 | map = map_pid_to_cmdline[pid]; |
790 | if (map == NO_CMDLINE_MAP) | 790 | if (map != NO_CMDLINE_MAP) |
791 | goto out; | 791 | strcpy(comm, saved_cmdlines[map]); |
792 | 792 | else | |
793 | strcpy(comm, saved_cmdlines[map]); | 793 | strcpy(comm, "<...>"); |
794 | 794 | ||
795 | out: | ||
796 | __raw_spin_unlock(&trace_cmdline_lock); | 795 | __raw_spin_unlock(&trace_cmdline_lock); |
797 | } | 796 | } |
798 | 797 | ||