Provided by: linux-doc-2.6.15_2.6.15-23.39_all
printk - print a kernel message
int printk (const char * fmt, ...);
fmt format string
... variable arguments
This is printk. It can be called from any context. We want it to work.
We try to grab the console_sem. If we succeed, it’s easy - we log the
output and call the console drivers. If we fail to get the semaphore we
place the output into the log buffer and return. The current holder of
the console_sem will notice the new output in release_console_sem and
will send it to the consoles before releasing the semaphore.
One effect of this deferred printing is that code which calls printk
and then changes console_loglevel may break. This is because
console_loglevel is inspected when the actual printing occurs.