linux/kernel/trace
Ingo Molnar 86fa2f6067 ftrace: fix selftest locking
Impact: fix self-test boot crash

Self-test failure forgot to re-lock the BKL - crashing the next
initcall:

Testing tracer irqsoff: .. no entries found ..FAILED!
initcall init_irqsoff_tracer+0x0/0x11 returned 0 after 3906 usecs
calling  init_mmio_trace+0x0/0xf @ 1
------------[ cut here ]------------
Kernel BUG at c0c0a915 [verbose debug info unavailable]
invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC
last sysfs file:

Pid: 1, comm: swapper Not tainted (2.6.28-rc5-tip #53704)
EIP: 0060:[<c0c0a915>] EFLAGS: 00010286 CPU: 1
EIP is at unlock_kernel+0x10/0x2b
EAX: ffffffff EBX: 00000000 ECX: 00000000 EDX: f7030000
ESI: c12da19c EDI: 00000000 EBP: f7039f54 ESP: f7039f54
 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process swapper (pid: 1, ti=f7038000 task=f7030000 task.ti=f7038000)
Stack:
 f7039f6c c0164d30 c013fed8 a7d8d7b4 00000000 00000000 f7039f74 c12fb78a
 f7039fd0 c0101132 c12fb77d 00000000 6f727200 6f632072 2d206564 c1002031
 0000000f f7039fa2 f7039fb0 3531b171 00000000 00000000 0000002f c12ca480
Call Trace:
 [<c0164d30>] ? register_tracer+0x66/0x13f
 [<c013fed8>] ? ktime_get+0x19/0x1b
 [<c12fb78a>] ? init_mmio_trace+0xd/0xf
 [<c0101132>] ? do_one_initcall+0x4a/0x111
 [<c12fb77d>] ? init_mmio_trace+0x0/0xf
 [<c015c7e6>] ? init_irq_proc+0x46/0x59
 [<c12e851d>] ? kernel_init+0x104/0x152
 [<c12e8419>] ? kernel_init+0x0/0x152
 [<c01038b7>] ? kernel_thread_helper+0x7/0x10
Code: 58 14 43 75 0a b8 00 9b 2d c1 e8 51 43 7a ff 64 a1 00 a0 37 c1 89 58 14 5b 5d c3 55 64 8b 15 00 a0 37 c1 83 7a 14 00 89 e5 79 04 <0f> 0b eb fe 8b 42 14 48 85 c0 89 42 14 79 0a b8 00 9b 2d c1 e8
EIP: [<c0c0a915>] unlock_kernel+0x10/0x2b SS:ESP 0068:f7039f54
---[ end trace a7919e7f17c0a725 ]---
Kernel panic - not syncing: Attempted to kill init!

So clean up the flow a bit.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-11-19 10:00:15 +01:00
..
ftrace.c ftrace: make filtered functions effective on setting 2008-11-16 07:37:46 +01:00
Kconfig trace: rename unlikely profiler to branch profiler 2008-11-12 22:27:58 +01:00
Makefile ftrace: rename trace_unlikely.c file 2008-11-12 22:28:40 +01:00
ring_buffer.c Merge branches 'tracing/fastboot', 'tracing/ftrace' and 'tracing/urgent' into tracing/core 2008-11-16 07:28:46 +01:00
trace_boot.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_branch.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_functions_return.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_functions.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_irqsoff.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_mmiotrace.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_nop.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_sched_switch.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_sched_wakeup.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_selftest_dynamic.c ftrace: fix dynamic ftrace selftest 2008-05-23 21:13:23 +02:00
trace_selftest.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_stack.c ftrace: insert in the ftrace_preempt_disable()/enable() functions 2008-11-04 10:09:49 +01:00
trace_sysprof.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace.c ftrace: fix selftest locking 2008-11-19 10:00:15 +01:00
trace.h tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00