-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
patch: include static call upstream patch
- Loading branch information
Showing
4 changed files
with
81 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 41 additions & 0 deletions
41
patches/0001-x86-static-call-Remove-early_boot_irqs_disabled-check.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
From a813654c781e10d906c5259d7b13bcd5237f05e6 Mon Sep 17 00:00:00 2001 | ||
From: Andrew Cooper <[email protected]> | ||
Date: Thu, 26 Dec 2024 14:58:49 -0500 | ||
Subject: [PATCH] x86/static-call: Remove early_boot_irqs_disabled check to fix | ||
Xen PVH dom0 | ||
|
||
__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") | ||
Reported-by: Alex Zenla <[email protected]> | ||
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219620 | ||
Suggested-by: Peter Zijlstra <[email protected]> | ||
Tested-by: Alex Zenla <[email protected]> | ||
Signed-off-by: Andrew Cooper <[email protected]> | ||
--- | ||
arch/x86/kernel/static_call.c | 1 - | ||
1 file changed, 1 deletion(-) | ||
|
||
diff --git a/arch/x86/kernel/static_call.c b/arch/x86/kernel/static_call.c | ||
index 9eed0c144dad..9e51242ed125 100644 | ||
--- a/arch/x86/kernel/static_call.c | ||
+++ b/arch/x86/kernel/static_call.c | ||
@@ -175,7 +175,6 @@ EXPORT_SYMBOL_GPL(arch_static_call_transform); | ||
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(); | ||
-- | ||
2.47.1 | ||
|