From: John Ogness Date: Thu, 21 Apr 2022 21:22:39 +0000 (+0206) Subject: printk: wake up all waiters X-Git-Tag: v5.19-rc1~165^2^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=938ba4084abcf6fdd21d9078513c52f8fb9b00d0;p=thirdparty%2Flinux.git printk: wake up all waiters There can be multiple tasks waiting for new records. They should all be woken. Use wake_up_interruptible_all() instead of wake_up_interruptible(). Signed-off-by: John Ogness Reviewed-by: Petr Mladek Signed-off-by: Petr Mladek Link: https://lore.kernel.org/r/20220421212250.565456-5-john.ogness@linutronix.de --- diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index f817dfb4852d4..e233570026480 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -3326,7 +3326,7 @@ static void wake_up_klogd_work_func(struct irq_work *irq_work) } if (pending & PRINTK_PENDING_WAKEUP) - wake_up_interruptible(&log_wait); + wake_up_interruptible_all(&log_wait); } static DEFINE_PER_CPU(struct irq_work, wake_up_klogd_work) =