]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Fri, 29 Mar 2024 11:55:35 +0000 (07:55 -0400)
committerSasha Levin <sashal@kernel.org>
Fri, 29 Mar 2024 11:55:35 +0000 (07:55 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/printk-update-console_may_schedule-in-console_tryloc.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/printk-update-console_may_schedule-in-console_tryloc.patch b/queue-4.19/printk-update-console_may_schedule-in-console_tryloc.patch
new file mode 100644 (file)
index 0000000..d1f1cef
--- /dev/null
@@ -0,0 +1,46 @@
+From 2dcf5573573786d107a244b1e7562b43abcd636c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 26 Feb 2024 13:07:24 +0106
+Subject: printk: Update @console_may_schedule in console_trylock_spinning()
+
+From: John Ogness <john.ogness@linutronix.de>
+
+[ Upstream commit 8076972468584d4a21dab9aa50e388b3ea9ad8c7 ]
+
+console_trylock_spinning() may takeover the console lock from a
+schedulable context. Update @console_may_schedule to make sure it
+reflects a trylock acquire.
+
+Reported-by: Mukesh Ojha <quic_mojha@quicinc.com>
+Closes: https://lore.kernel.org/lkml/20240222090538.23017-1-quic_mojha@quicinc.com
+Fixes: dbdda842fe96 ("printk: Add console owner and waiter logic to load balance console writes")
+Signed-off-by: John Ogness <john.ogness@linutronix.de>
+Reviewed-by: Mukesh Ojha <quic_mojha@quicinc.com>
+Reviewed-by: Petr Mladek <pmladek@suse.com>
+Link: https://lore.kernel.org/r/875xybmo2z.fsf@jogness.linutronix.de
+Signed-off-by: Petr Mladek <pmladek@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ kernel/printk/printk.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
+index 2ba16c426ba5d..66c78dfd17925 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -1732,6 +1732,12 @@ static int console_trylock_spinning(void)
+        */
+       mutex_acquire(&console_lock_dep_map, 0, 1, _THIS_IP_);
++      /*
++       * Update @console_may_schedule for trylock because the previous
++       * owner may have been schedulable.
++       */
++      console_may_schedule = 0;
++
+       return 1;
+ }
+-- 
+2.43.0
+
index 235e9fdb6612f9792c00d2644833d7189d13d793..dd25641bed7a7f0b9a7024355eac043fd6d1295c 100644 (file)
@@ -77,3 +77,4 @@ usb-port-don-t-try-to-peer-unused-usb-ports-based-on-location.patch
 tty-serial-fsl_lpuart-avoid-idle-preamble-pending-if-cts-is-enabled.patch
 vt-fix-unicode-buffer-corruption-when-deleting-characters.patch
 fs-aio-check-iocb_aio_rw-before-the-struct-aio_kiocb-conversion.patch
+printk-update-console_may_schedule-in-console_tryloc.patch