On (09/05/19 12:03), Qian Cai wrote: > > --- > > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c > > index cd51aa7d08a9..89cb47882254 100644 > > --- a/kernel/printk/printk.c > > +++ b/kernel/printk/printk.c > > @@ -2027,8 +2027,11 @@ asmlinkage int vprintk_emit(int facility, int level, > > pending_output = (curr_log_seq != log_next_seq); > > logbuf_unlock_irqrestore(flags); > > > > + if (!pending_output) > > + return printed_len; > > + > > /* If called from the scheduler, we can not call up(). */ > > - if (!in_sched && pending_output) { > > + if (!in_sched) { > > /* > > * Disable preemption to avoid being preempted while holding > > * console_sem which would prevent anyone from printing to > > @@ -2043,10 +2046,11 @@ asmlinkage int vprintk_emit(int facility, int level, > > if (console_trylock_spinning()) > > console_unlock(); > > preempt_enable(); > > - } > > > > - if (pending_output) > > + wake_up_interruptible(&log_wait); > > + } else { > > wake_up_klogd(); > > + } > > return printed_len; > > } > > EXPORT_SYMBOL(vprintk_emit); > > --- Qian Cai, any chance you can test that patch? -ss