summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2008-10-02 13:26:05 +0200
committerIngo Molnar <mingo@elte.hu>2008-10-14 10:39:12 +0200
commit5601020feb0c3010e9e3e0131e9697ac6a06777b (patch)
tree99d1a70dbf3bba2b5ae1007c4828c28e6480214a /init
parenttracing/fastboot: change the printing of boot tracer according to bootgraph.pl (diff)
downloadlinux-5601020feb0c3010e9e3e0131e9697ac6a06777b.tar.xz
linux-5601020feb0c3010e9e3e0131e9697ac6a06777b.zip
tracing/fastboot: get the initcall name before it disappears
After some initcall traces, some initcall names may be inconsistent. That's because these functions will disappear from the .init section and also their name from the symbols table. So we have to copy the name of the function in a buffer large enough during the trace appending. It is not costly for the ring_buffer because the number of initcall entries is commonly not really large. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init')
-rw-r--r--init/main.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/init/main.c b/init/main.c
index 61eb66159391..8e96a0ef17f4 100644
--- a/init/main.c
+++ b/init/main.c
@@ -712,7 +712,6 @@ int do_one_initcall(initcall_t fn)
if (initcall_debug) {
it.caller = task_pid_nr(current);
- it.func = fn;
printk("calling %pF @ %i\n", fn, it.caller);
it.calltime = ktime_get();
}
@@ -725,7 +724,7 @@ int do_one_initcall(initcall_t fn)
it.duration = (unsigned long long) delta.tv64 >> 20;
printk("initcall %pF returned %d after %Ld msecs\n", fn,
it.result, it.duration);
- trace_boot(&it);
+ trace_boot(&it, fn);
}
msgbuf[0] = 0;