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
Unified · Split
| @@ -190,7 +190,8 @@ int ssp_get(struct task_struct *target, const struct user_regset *regset, · 189 unmodified lines | |||
| 190 | struct fpu *fpu = &target->thread.fpu; | 190 | struct fpu *fpu = &target->thread.fpu; |
| 191 | struct cet_user_state *cetregs; | 191 | struct cet_user_state *cetregs; |
| 192 | 192 | ||
| 193 | if (!cpu_feature_enabled(X86_FEATURE_USER_SHSTK)) | 193 | if (!cpu_feature_enabled(X86_FEATURE_USER_SHSTK) || |
| 194 | !ssp_active(target, regset)) | ||
| 194 | return -ENODEV; | 195 | return -ENODEV; |
| 195 | 196 | ||
| 196 | sync_fpstate(fpu); | 197 | sync_fpstate(fpu); |
| @@ -175,7 +175,6 @@ EXPORT_SYMBOL_GPL(arch_static_call_transform); · 174 unmodified lines | |||
| 175 | noinstr void __static_call_update_early(void *tramp, void *func) | 175 | noinstr void __static_call_update_early(void *tramp, void *func) |
| 176 | { | 176 | { |
| 177 | BUG_ON(system_state != SYSTEM_BOOTING); | 177 | BUG_ON(system_state != SYSTEM_BOOTING); |
| 178 | BUG_ON(!early_boot_irqs_disabled); | ||
| 179 | BUG_ON(static_call_initialized); | 178 | BUG_ON(static_call_initialized); |
| 180 | __text_gen_insn(tramp, JMP32_INSN_OPCODE, tramp, func, JMP32_INSN_SIZE); | 179 | __text_gen_insn(tramp, JMP32_INSN_OPCODE, tramp, func, JMP32_INSN_SIZE); |
| 181 | sync_core(); | 180 | sync_core(); |