Bug reported and fixed by Tilman Schmidt <[email protected]>: if lockdep is
enabled then log messages make it to /var/log/messages belatedly. The
reason is a missed wakeup of klogd.
Initially there was only a lockdep_internal() protection against lockdep
recursion within vprintk() - it grew the 'outer' lockdep_off()/on()
protection only later on. But that lockdep_off() made the
release_console_sem() within vprintk() always happen under the
lockdep_internal() condition, causing the bug.
The right solution to remove the inner protection against recursion here -
the outer one is enough.
Signed-off-by: Ingo Molnar <[email protected]>
Cc: Tilman Schmidt <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>