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.

Reply via email to