/* SPEC_CTRL_EXIT_TO_SVM Req: b=curr %rsp=regs/cpuinfo, Clob: acd */
.macro svm_vmentry_spec_ctrl
mov VCPU_arch_msrs(%rbx), %rax
- movzbl CPUINFO_last_spec_ctrl(%rsp), %edx
+ mov CPUINFO_last_spec_ctrl(%rsp), %edx
mov VCPUMSR_spec_ctrl_raw(%rax), %eax
cmp %edx, %eax
je 1f /* Skip write if value is correct. */
mov $MSR_SPEC_CTRL, %ecx
xor %edx, %edx
wrmsr
- mov %al, CPUINFO_last_spec_ctrl(%rsp)
+ mov %eax, CPUINFO_last_spec_ctrl(%rsp)
1: /* No Spectre v1 concerns. Execution will hit VMRUN imminently. */
.endm
ALTERNATIVE "", svm_vmentry_spec_ctrl, X86_FEATURE_SC_MSR_HVM
* safe to use. The guest's setting resides in the VMCB.
*/
.macro svm_vmexit_spec_ctrl
- movzbl CPUINFO_xen_spec_ctrl(%rsp), %eax
- movzbl CPUINFO_last_spec_ctrl(%rsp), %edx
+ mov CPUINFO_xen_spec_ctrl(%rsp), %eax
+ mov CPUINFO_last_spec_ctrl(%rsp), %edx
cmp %edx, %eax
je 1f /* Skip write if value is correct. */
mov $MSR_SPEC_CTRL, %ecx
xor %edx, %edx
wrmsr
- mov %al, CPUINFO_last_spec_ctrl(%rsp)
+ mov %eax, CPUINFO_last_spec_ctrl(%rsp)
1:
.endm
ALTERNATIVE "", svm_vmexit_spec_ctrl, X86_FEATURE_SC_MSR_HVM
static bool __initdata opt_lock_harden;
bool __initdata bsp_delay_spec_ctrl;
-uint8_t __read_mostly default_xen_spec_ctrl;
+unsigned int __read_mostly default_xen_spec_ctrl;
uint8_t __read_mostly default_scf;
paddr_t __read_mostly l1tf_addr_mask, __read_mostly l1tf_safe_maddr;
extern bool opt_branch_harden;
extern bool bsp_delay_spec_ctrl;
-extern uint8_t default_xen_spec_ctrl;
+extern unsigned int default_xen_spec_ctrl;
extern uint8_t default_scf;
extern int8_t opt_xpti_hwdom, opt_xpti_domu;
setnz %al
not %eax
and %al, STACK_CPUINFO_FIELD(scf)(%r14)
- movzbl STACK_CPUINFO_FIELD(xen_spec_ctrl)(%r14), %eax
+ mov STACK_CPUINFO_FIELD(xen_spec_ctrl)(%r14), %eax
.else
andb $~SCF_use_shadow, CPUINFO_scf(%rsp)
- movzbl CPUINFO_xen_spec_ctrl(%rsp), %eax
+ mov CPUINFO_xen_spec_ctrl(%rsp), %eax
.endif
wrmsr
/* Load Xen's intended value. */
mov $MSR_SPEC_CTRL, %ecx
- movzbl STACK_CPUINFO_FIELD(xen_spec_ctrl)(%r14), %eax
+ mov STACK_CPUINFO_FIELD(xen_spec_ctrl)(%r14), %eax
wrmsr
.L\@_skip_msr_spec_ctrl: