diff --git a/[refs] b/[refs] index 180bc640c45a..79b596a9fe77 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 38cbcdc0a7be69a15462dc49512d43353f34b43b +refs/heads/master: 78944e549d36673eb6265a2411574e79c28e23dc diff --git a/trunk/kernel/printk.c b/trunk/kernel/printk.c index 65ca0688f86f..1149365e989e 100644 --- a/trunk/kernel/printk.c +++ b/trunk/kernel/printk.c @@ -799,6 +799,9 @@ void release_console_sem(void) up(&secondary_console_sem); return; } + + console_may_schedule = 0; + for ( ; ; ) { spin_lock_irqsave(&logbuf_lock, flags); wake_klogd |= log_start - log_end; @@ -812,7 +815,6 @@ void release_console_sem(void) local_irq_restore(flags); } console_locked = 0; - console_may_schedule = 0; up(&console_sem); spin_unlock_irqrestore(&logbuf_lock, flags); if (wake_klogd && !oops_in_progress && waitqueue_active(&log_wait)) {