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

diff --git a/queue-5.4/printk-update-console_may_schedule-in-console_tryloc.patch b/queue-5.4/printk-update-console_may_schedule-in-console_tryloc.patch
new file mode 100644 (file)
index 0000000..e7369cf
--- /dev/null
@@ -0,0 +1,46 @@
+From f4b6613ffe074449a9c57ec7efe7716097dcb2b0 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 bb2198b40756d..ae1a97dd0c3cb 100644
+--- a/kernel/printk/printk.c
++++ b/kernel/printk/printk.c
+@@ -1787,6 +1787,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 bbf4e7787986e2a90c44f948ea2f522b0d84cc2b..b99c503f3c18a7a944fba9c46dcecadca2ad3d1e 100644 (file)
@@ -93,3 +93,4 @@ objtool-is_fentry_call-crashes-if-call-has-no-destination.patch
 objtool-add-support-for-intra-function-calls.patch
 x86-speculation-support-intra-function-call-validation.patch
 xen-events-close-evtchn-after-mapping-cleanup.patch
+printk-update-console_may_schedule-in-console_tryloc.patch