Messages in this thread | | | Date | Thu, 26 May 2022 16:37:10 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH] Revert "printk: wake up all waiters" |
| |
On Thu, 26 May 2022 22:36:56 +0206 John Ogness <john.ogness@linutronix.de> wrote:
> This reverts commit 938ba4084abcf6fdd21d9078513c52f8fb9b00d0. > > The wait queue @log_wait never has exclusive waiters, so there > is no need to use wake_up_interruptible_all(). Using > wake_up_interruptible() was the correct function to wake all > waiters. > > Since there are no exclusive waiters, erroneously changing > wake_up_interruptible() to wake_up_interruptible_all() did not > result in any behavior change. However, using > wake_up_interruptible_all() on a wait queue without exclusive > waiters is fundamentally wrong. > > Go back to using wake_up_interruptible() to wake all waiters.
(Just to show that I have been paying attention ;-)
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-- Steve
> > Signed-off-by: John Ogness <john.ogness@linutronix.de> > --- > kernel/printk/printk.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c > index a3e1035929b0..ea3dd55709e7 100644 > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c > @@ -3904,7 +3904,7 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) > } > > if (pending & PRINTK_PENDING_WAKEUP) > - wake_up_interruptible_all(&log_wait); > + wake_up_interruptible(&log_wait); > } > > static DEFINE_PER_CPU(struct irq_work, wake_up_klogd_work) =
| |