diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-02-24 18:22:39 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-24 18:22:39 +0100 |
commit | a7f4463e0300b5135c0f0caf7c34a0529405f986 (patch) | |
tree | 8df5f13094778eff3c8653bcc249cd265378b80a /kernel/printk.c | |
parent | Merge branch 'tip/x86/ftrace' of git://git.kernel.org/pub/scm/linux/kernel/gi... (diff) | |
parent | Linux 2.6.29-rc6 (diff) | |
download | linux-a7f4463e0300b5135c0f0caf7c34a0529405f986.tar.xz linux-a7f4463e0300b5135c0f0caf7c34a0529405f986.zip |
Merge branch 'tracing/ftrace'; commit 'v2.6.29-rc6' into tracing/core
Diffstat (limited to 'kernel/printk.c')
-rw-r--r-- | kernel/printk.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index 69188f226a93..e3602d0755b0 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -73,7 +73,6 @@ EXPORT_SYMBOL(oops_in_progress); * driver system. */ static DECLARE_MUTEX(console_sem); -static DECLARE_MUTEX(secondary_console_sem); struct console *console_drivers; EXPORT_SYMBOL_GPL(console_drivers); @@ -891,12 +890,14 @@ void suspend_console(void) printk("Suspending console(s) (use no_console_suspend to debug)\n"); acquire_console_sem(); console_suspended = 1; + up(&console_sem); } void resume_console(void) { if (!console_suspend_enabled) return; + down(&console_sem); console_suspended = 0; release_console_sem(); } @@ -912,11 +913,9 @@ void resume_console(void) void acquire_console_sem(void) { BUG_ON(in_interrupt()); - if (console_suspended) { - down(&secondary_console_sem); - return; - } down(&console_sem); + if (console_suspended) + return; console_locked = 1; console_may_schedule = 1; } @@ -926,6 +925,10 @@ int try_acquire_console_sem(void) { if (down_trylock(&console_sem)) return -1; + if (console_suspended) { + up(&console_sem); + return -1; + } console_locked = 1; console_may_schedule = 0; return 0; @@ -979,7 +982,7 @@ void release_console_sem(void) unsigned wake_klogd = 0; if (console_suspended) { - up(&secondary_console_sem); + up(&console_sem); return; } |