diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2025-01-12 20:55:48 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2025-01-12 20:55:48 +0100 |
commit | f31acaef553fb3cff8f2f6bdf4e5fc76b83e082d (patch) | |
tree | 591233390113dd8b472ba25ca8cd3686f3cb203b /arch | |
parent | Merge tag 'probes-fixes-v6.13-rc6' of git://git.kernel.org/pub/scm/linux/kern... (diff) | |
parent | x86/fpu: Ensure shadow stack is active before "getting" registers (diff) | |
download | linux-f31acaef553fb3cff8f2f6bdf4e5fc76b83e082d.tar.xz linux-f31acaef553fb3cff8f2f6bdf4e5fc76b83e082d.zip |
Merge tag 'x86_urgent_for_v6.13_rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Borislav Petkov:
- Check whether shadow stack is active before using the ptrace regset
getter
- Remove a wrong BUG_ON in the early static call code which breaks Xen
PVH when booting as dom0
* tag 'x86_urgent_for_v6.13_rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/fpu: Ensure shadow stack is active before "getting" registers
x86/static-call: Remove early_boot_irqs_disabled check to fix Xen PVH dom0
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/fpu/regset.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/static_call.c | 1 |
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c index 6bc1eb2a21bd..887b0b8e21e3 100644 --- a/arch/x86/kernel/fpu/regset.c +++ b/arch/x86/kernel/fpu/regset.c @@ -190,7 +190,8 @@ int ssp_get(struct task_struct *target, const struct user_regset *regset, struct fpu *fpu = &target->thread.fpu; struct cet_user_state *cetregs; - if (!cpu_feature_enabled(X86_FEATURE_USER_SHSTK)) + if (!cpu_feature_enabled(X86_FEATURE_USER_SHSTK) || + !ssp_active(target, regset)) return -ENODEV; sync_fpstate(fpu); 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(); |