aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorWolfgang Mauerer <wolfgang.mauerer@siemens.com>2012-03-22 06:18:20 -0400
committerLuis Henriques <luis.henriques@canonical.com>2012-05-01 05:59:56 -0400
commitd1095fe388f4747fe8ceba661e5bacdb45bcfb01 (patch)
treef287831a06e22cab56fea67c1bfdb956aed600d6 /kernel
parent3bac96af02f27353882a3410b0ba6f721c365875 (diff)
tracing: Fix ftrace stack trace entries
BugLink: http://bugs.launchpad.net/bugs/983326 commit 01de982abf8c9e10fc3089e10585cd2cc914bdab upstream. 8 hex characters tell only half the tale for 64 bit CPUs, so use the appropriate length. Link: http://lkml.kernel.org/r/1332411501-8059-2-git-send-email-wolfgang.mauerer@siemens.com Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer@siemens.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace_entries.h16
-rw-r--r--kernel/trace/trace_export.c2
2 files changed, 13 insertions, 5 deletions
diff --git a/kernel/trace/trace_entries.h b/kernel/trace/trace_entries.h
index e32744c84d9..1fe81eef1ce 100644
--- a/kernel/trace/trace_entries.h
+++ b/kernel/trace/trace_entries.h
@@ -156,6 +156,12 @@ FTRACE_ENTRY_DUP(wakeup, ctx_switch_entry,
156 156
157#define FTRACE_STACK_ENTRIES 8 157#define FTRACE_STACK_ENTRIES 8
158 158
159#ifndef CONFIG_64BIT
160# define IP_FMT "%08lx"
161#else
162# define IP_FMT "%016lx"
163#endif
164
159FTRACE_ENTRY(kernel_stack, stack_entry, 165FTRACE_ENTRY(kernel_stack, stack_entry,
160 166
161 TRACE_STACK, 167 TRACE_STACK,
@@ -164,8 +170,9 @@ FTRACE_ENTRY(kernel_stack, stack_entry,
164 __array( unsigned long, caller, FTRACE_STACK_ENTRIES ) 170 __array( unsigned long, caller, FTRACE_STACK_ENTRIES )
165 ), 171 ),
166 172
167 F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n" 173 F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
168 "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n", 174 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
175 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n",
169 __entry->caller[0], __entry->caller[1], __entry->caller[2], 176 __entry->caller[0], __entry->caller[1], __entry->caller[2],
170 __entry->caller[3], __entry->caller[4], __entry->caller[5], 177 __entry->caller[3], __entry->caller[4], __entry->caller[5],
171 __entry->caller[6], __entry->caller[7]) 178 __entry->caller[6], __entry->caller[7])
@@ -180,8 +187,9 @@ FTRACE_ENTRY(user_stack, userstack_entry,
180 __array( unsigned long, caller, FTRACE_STACK_ENTRIES ) 187 __array( unsigned long, caller, FTRACE_STACK_ENTRIES )
181 ), 188 ),
182 189
183 F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n" 190 F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
184 "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n", 191 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
192 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n",
185 __entry->caller[0], __entry->caller[1], __entry->caller[2], 193 __entry->caller[0], __entry->caller[1], __entry->caller[2],
186 __entry->caller[3], __entry->caller[4], __entry->caller[5], 194 __entry->caller[3], __entry->caller[4], __entry->caller[5],
187 __entry->caller[6], __entry->caller[7]) 195 __entry->caller[6], __entry->caller[7])
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index bbeec31e0ae..ad4000c71be 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -150,7 +150,7 @@ ftrace_define_fields_##name(struct ftrace_event_call *event_call) \
150#define __dynamic_array(type, item) 150#define __dynamic_array(type, item)
151 151
152#undef F_printk 152#undef F_printk
153#define F_printk(fmt, args...) #fmt ", " __stringify(args) 153#define F_printk(fmt, args...) __stringify(fmt) ", " __stringify(args)
154 154
155#undef FTRACE_ENTRY 155#undef FTRACE_ENTRY
156#define FTRACE_ENTRY(call, struct_name, etype, tstruct, print) \ 156#define FTRACE_ENTRY(call, struct_name, etype, tstruct, print) \