summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Ogness <john.ogness@linutronix.de>2022-04-21 23:28:39 +0206
committerPetr Mladek <pmladek@suse.com>2022-04-22 21:30:57 +0200
commit938ba4084abcf6fdd21d9078513c52f8fb9b00d0 (patch)
tree654c2096515e66b2ef5c913158ae6424d44601fe
parent1f5d783094cf28b4905f51cad846eb5d1db6673e (diff)
downloadlinux-938ba4084abcf6fdd21d9078513c52f8fb9b00d0.tar.gz
linux-938ba4084abcf6fdd21d9078513c52f8fb9b00d0.tar.bz2
linux-938ba4084abcf6fdd21d9078513c52f8fb9b00d0.zip
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 <john.ogness@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Petr Mladek <pmladek@suse.com> Link: https://lore.kernel.org/r/20220421212250.565456-5-john.ogness@linutronix.de
-rw-r--r--kernel/printk/printk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index f817dfb4852d..e23357002648 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) =