From: Greg Kroah-Hartman Date: Tue, 18 Feb 2025 15:02:19 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v6.1.129~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe658da53e4858f7a094071f7050798213f96f7b;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: kdb-do-not-assume-write-callback-available.patch x86-static-call-remove-early_boot_irqs_disabled-check-to-fix-xen-pvh-dom0.patch --- diff --git a/queue-5.15/kdb-do-not-assume-write-callback-available.patch b/queue-5.15/kdb-do-not-assume-write-callback-available.patch new file mode 100644 index 0000000000..f5c9c2758b --- /dev/null +++ b/queue-5.15/kdb-do-not-assume-write-callback-available.patch @@ -0,0 +1,39 @@ +From 6d3e0d8cc63221dec670d0ee92ac57961581e975 Mon Sep 17 00:00:00 2001 +From: John Ogness +Date: Mon, 17 Jul 2023 21:52:01 +0206 +Subject: kdb: Do not assume write() callback available + +From: John Ogness + +commit 6d3e0d8cc63221dec670d0ee92ac57961581e975 upstream. + +It is allowed for consoles to not provide a write() callback. For +example ttynull does this. + +Check if a write() callback is available before using it. + +Signed-off-by: John Ogness +Reviewed-by: Petr Mladek +Reviewed-by: Douglas Anderson +Reviewed-by: Daniel Thompson +Acked-by: Daniel Thompson +Reviewed-by: Sergey Senozhatsky +Signed-off-by: Petr Mladek +Link: https://lore.kernel.org/r/20230717194607.145135-2-john.ogness@linutronix.de +Cc: Brian Norris +Signed-off-by: Greg Kroah-Hartman +--- + kernel/debug/kdb/kdb_io.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/kernel/debug/kdb/kdb_io.c ++++ b/kernel/debug/kdb/kdb_io.c +@@ -577,6 +577,8 @@ static void kdb_msg_write(const char *ms + continue; + if (c == dbg_io_ops->cons) + continue; ++ if (!c->write) ++ continue; + /* + * Set oops_in_progress to encourage the console drivers to + * disregard their internal spin locks: in the current calling diff --git a/queue-5.15/series b/queue-5.15/series index 049ffec72b..7d21f29af3 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -414,3 +414,5 @@ ipv6-mcast-add-rcu-protection-to-mld_newpack.patch drm-tidss-fix-issue-in-irq-handling-causing-irq-flood-issue.patch drm-tidss-clear-the-interrupt-status-for-interrupts-being-disabled.patch drm-v3d-stop-active-perfmon-if-it-is-being-destroyed.patch +kdb-do-not-assume-write-callback-available.patch +x86-static-call-remove-early_boot_irqs_disabled-check-to-fix-xen-pvh-dom0.patch diff --git a/queue-5.15/x86-static-call-remove-early_boot_irqs_disabled-check-to-fix-xen-pvh-dom0.patch b/queue-5.15/x86-static-call-remove-early_boot_irqs_disabled-check-to-fix-xen-pvh-dom0.patch new file mode 100644 index 0000000000..98dd5d7567 --- /dev/null +++ b/queue-5.15/x86-static-call-remove-early_boot_irqs_disabled-check-to-fix-xen-pvh-dom0.patch @@ -0,0 +1,44 @@ +From 5cc2db37124bb33914996d6fdbb2ddb3811f2945 Mon Sep 17 00:00:00 2001 +From: Andrew Cooper +Date: Sat, 21 Dec 2024 21:10:46 +0000 +Subject: x86/static-call: Remove early_boot_irqs_disabled check to fix Xen PVH dom0 + +From: Andrew Cooper + +commit 5cc2db37124bb33914996d6fdbb2ddb3811f2945 upstream. + +__static_call_update_early() has a check for early_boot_irqs_disabled, but +is used before early_boot_irqs_disabled is set up in start_kernel(). + +Xen PV has always special cased early_boot_irqs_disabled, but Xen PVH does +not and falls over the BUG when booting as dom0. + +It is very suspect that early_boot_irqs_disabled starts as 0, becomes 1 for +a time, then becomes 0 again, but as this needs backporting to fix a +breakage in a security fix, dropping the BUG_ON() is the far safer option. + +Fixes: 0ef8047b737d ("x86/static-call: provide a way to do very early static-call updates") +Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219620 +Reported-by: Alex Zenla +Suggested-by: Peter Zijlstra +Signed-off-by: Andrew Cooper +Signed-off-by: Borislav Petkov (AMD) +Reviewed-by: Juergen Gross +Acked-by: Peter Zijlstra (Intel) +Tested-by: Alex Zenla +Link: https://lore.kernel.org/r/20241221211046.6475-1-andrew.cooper3@citrix.com +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kernel/static_call.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/arch/x86/kernel/static_call.c ++++ b/arch/x86/kernel/static_call.c +@@ -169,7 +169,6 @@ EXPORT_SYMBOL_GPL(arch_static_call_trans + noinstr void __static_call_update_early(void *tramp, void *func) + { + BUG_ON(system_state != SYSTEM_BOOTING); +- BUG_ON(!early_boot_irqs_disabled); + BUG_ON(static_call_initialized); + __text_gen_insn(tramp, JMP32_INSN_OPCODE, tramp, func, JMP32_INSN_SIZE); + sync_core();