Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:GA
xen.34726
xsa456-0m.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xsa456-0m.patch of Package xen.34726
# Commit 2378d16a931de0e62c03669169989e9437306abe # Date 2024-04-09 16:37:30 +0100 # Author Andrew Cooper <andrew.cooper3@citrix.com> # Committer Andrew Cooper <andrew.cooper3@citrix.com> x86/spec-ctrl: Simplify DO_COND_IBPB With the prior refactoring, SPEC_CTRL_ENTRY_{PV,INTR} both load SCF into %ebx, and handle the conditional safety including skipping if interrupting Xen. Therefore, we can drop the maybexen parameter and the conditional safety. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Roger Pau Monné <roger.pau@citrix.com> --- a/xen/include/asm-x86/spec_ctrl_asm.h +++ b/xen/include/asm-x86/spec_ctrl_asm.h @@ -87,33 +87,21 @@ * - SPEC_CTRL_EXIT_TO_{SVM,VMX} */ -.macro DO_SPEC_CTRL_COND_IBPB maybexen:req +.macro DO_COND_IBPB /* - * Requires %rsp=regs (also cpuinfo if !maybexen) - * Requires %r14=stack_end (if maybexen), %rdx=0 - * Clobbers %rax, %rcx, %rdx + * Requires %rbx=SCF, %rdx=0 + * Clobbers %rax, %rcx * - * Conditionally issue IBPB if SCF_entry_ibpb is active. In the maybexen - * case, we can safely look at UREGS_cs to skip taking the hit when - * interrupting Xen. + * Conditionally issue IBPB if SCF_entry_ibpb is active. */ - .if \maybexen - testb $SCF_entry_ibpb, STACK_CPUINFO_FIELD(scf)(%r14) - jz .L\@_skip - testb $3, UREGS_cs(%rsp) - .else - testb $SCF_entry_ibpb, CPUINFO_scf(%rsp) - .endif + testb $SCF_entry_ibpb, %bl jz .L\@_skip mov $MSR_PRED_CMD, %ecx mov $PRED_CMD_IBPB, %eax wrmsr - jmp .L\@_done .L\@_skip: - lfence -.L\@_done: .endm .macro DO_OVERWRITE_RSB tmp=rax @@ -268,8 +256,7 @@ */ movzbl STACK_CPUINFO_FIELD(scf)(%r14), %ebx - ALTERNATIVE "", __stringify(DO_SPEC_CTRL_COND_IBPB maybexen=0), \ - X86_FEATURE_IBPB_ENTRY_PV + ALTERNATIVE "", DO_COND_IBPB, X86_FEATURE_IBPB_ENTRY_PV ALTERNATIVE "", DO_OVERWRITE_RSB, X86_FEATURE_SC_RSB_PV @@ -298,8 +285,7 @@ testb $3, UREGS_cs(%rsp) jz .L\@_skip - ALTERNATIVE "", __stringify(DO_SPEC_CTRL_COND_IBPB maybexen=1), \ - X86_FEATURE_IBPB_ENTRY_PV + ALTERNATIVE "", DO_COND_IBPB, X86_FEATURE_IBPB_ENTRY_PV ALTERNATIVE "", DO_OVERWRITE_RSB, X86_FEATURE_SC_RSB_PV @@ -339,7 +325,7 @@ * Clobbers %rax, %rbx, %rcx, %rdx * * This is logical merge of: - * DO_SPEC_CTRL_COND_IBPB maybexen=0 + * DO_COND_IBPB * DO_OVERWRITE_RSB * DO_SPEC_CTRL_ENTRY maybexen=1 * but with conditionals rather than alternatives.
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor