On Fri, Oct 28, 2022 at 01:49:12PM +0200, Roger Pau Monne wrote: > diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c > index 95416995a5..a4c28879bc 100644 > --- a/xen/arch/x86/msr.c > +++ b/xen/arch/x86/msr.c > @@ -697,7 +697,14 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t > val) > msrs->spec_ctrl.raw &= ~SPEC_CTRL_SSBD; > } > else > + { > msrs->virt_spec_ctrl.raw = val & SPEC_CTRL_SSBD; > + /* > + * Propagate the value to hardware, as it won't be context > switched > + * on vmentry. > + */ > + goto set_reg;
Doing this when v != curr is wrong, will send an updated patch. Roger.