aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/printk.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-11 05:49:34 -0400
committerIngo Molnar <mingo@elte.hu>2009-03-11 05:49:34 -0400
commitd95c3578120e5bc4784069439f00ccb1b5f87717 (patch)
treec819de31de3983f3d69f223ede07667ff23bf7da /kernel/printk.c
parentba1d755a36f66101aa88ac9ebb54694def6ec38d (diff)
parent78b020d035074fc3aa4d017353bb2c32e2aff56f (diff)
Merge branch 'x86/core' into cpus4096
Diffstat (limited to 'kernel/printk.c')
-rw-r--r--kernel/printk.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/kernel/printk.c b/kernel/printk.c
index 7015733793e8..e3602d0755b0 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -73,7 +73,6 @@ EXPORT_SYMBOL(oops_in_progress);
73 * driver system. 73 * driver system.
74 */ 74 */
75static DECLARE_MUTEX(console_sem); 75static DECLARE_MUTEX(console_sem);
76static DECLARE_MUTEX(secondary_console_sem);
77struct console *console_drivers; 76struct console *console_drivers;
78EXPORT_SYMBOL_GPL(console_drivers); 77EXPORT_SYMBOL_GPL(console_drivers);
79 78
@@ -382,7 +381,7 @@ out:
382 return error; 381 return error;
383} 382}
384 383
385asmlinkage long sys_syslog(int type, char __user *buf, int len) 384SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
386{ 385{
387 return do_syslog(type, buf, len); 386 return do_syslog(type, buf, len);
388} 387}
@@ -742,11 +741,6 @@ EXPORT_SYMBOL(vprintk);
742 741
743#else 742#else
744 743
745asmlinkage long sys_syslog(int type, char __user *buf, int len)
746{
747 return -ENOSYS;
748}
749
750static void call_console_drivers(unsigned start, unsigned end) 744static void call_console_drivers(unsigned start, unsigned end)
751{ 745{
752} 746}
@@ -896,12 +890,14 @@ void suspend_console(void)
896 printk("Suspending console(s) (use no_console_suspend to debug)\n"); 890 printk("Suspending console(s) (use no_console_suspend to debug)\n");
897 acquire_console_sem(); 891 acquire_console_sem();
898 console_suspended = 1; 892 console_suspended = 1;
893 up(&console_sem);
899} 894}
900 895
901void resume_console(void) 896void resume_console(void)
902{ 897{
903 if (!console_suspend_enabled) 898 if (!console_suspend_enabled)
904 return; 899 return;
900 down(&console_sem);
905 console_suspended = 0; 901 console_suspended = 0;
906 release_console_sem(); 902 release_console_sem();
907} 903}
@@ -917,11 +913,9 @@ void resume_console(void)
917void acquire_console_sem(void) 913void acquire_console_sem(void)
918{ 914{
919 BUG_ON(in_interrupt()); 915 BUG_ON(in_interrupt());
920 if (console_suspended) {
921 down(&secondary_console_sem);
922 return;
923 }
924 down(&console_sem); 916 down(&console_sem);
917 if (console_suspended)
918 return;
925 console_locked = 1; 919 console_locked = 1;
926 console_may_schedule = 1; 920 console_may_schedule = 1;
927} 921}
@@ -931,6 +925,10 @@ int try_acquire_console_sem(void)
931{ 925{
932 if (down_trylock(&console_sem)) 926 if (down_trylock(&console_sem))
933 return -1; 927 return -1;
928 if (console_suspended) {
929 up(&console_sem);
930 return -1;
931 }
934 console_locked = 1; 932 console_locked = 1;
935 console_may_schedule = 0; 933 console_may_schedule = 0;
936 return 0; 934 return 0;
@@ -984,7 +982,7 @@ void release_console_sem(void)
984 unsigned wake_klogd = 0; 982 unsigned wake_klogd = 0;
985 983
986 if (console_suspended) { 984 if (console_suspended) {
987 up(&secondary_console_sem); 985 up(&console_sem);
988 return; 986 return;
989 } 987 }
990 988