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

Reply via email to