From: John Ogness Date: Thu, 21 Apr 2022 21:22:39 +0000 (+0206) Subject: printk: wake up all waiters X-Git-Tag: baikal/aarch64/sdk6.1~3940^2^2~12 X-Git-Url: https://git.baikalelectronics.ru/?a=commitdiff_plain;h=fc67ff71e216cbc8816d2962ee3c857ef4d8c8e9;p=kernel.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) =