aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/printk.c
diff options
context:
space:
mode:
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