|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] x86: MSR_IA32_BNDCFGS save/restore
Andrew Cooper wrote:
> On 13/12/2013 14:02, Jan Beulich wrote:
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
>>
>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>> @@ -580,6 +580,55 @@ static int vmx_load_vmcs_ctxt(struct vcp
>> return 0; }
>>
>> +static unsigned int __init vmx_init_msr(void)
>> +{
>> + return !!cpu_has_mpx;
>> +}
>> +
>> +static void vmx_save_msr(struct vcpu *v, struct hvm_msr *ctxt) +{
>> + vmx_vmcs_enter(v);
>> +
>> + if ( cpu_has_mpx )
>> + {
>> + __vmread(GUEST_BNDCFGS, &ctxt->msr[ctxt->count].val);
>> + if ( ctxt->msr[ctxt->count].val )
>> + ctxt->msr[ctxt->count++].index = MSR_IA32_BNDCFGS; +
>> } +
>> + vmx_vmcs_exit(v);
>> +}
>> +
>> +static int vmx_load_msr(struct vcpu *v, struct hvm_msr *ctxt) +{
>> + unsigned int i;
>> + int err = 0;
>> +
>> + vmx_vmcs_enter(v);
>> +
>> + for ( i = 0; i < ctxt->count; ++i )
>> + {
>> + switch ( ctxt->msr[i].index )
>> + {
>> + case MSR_IA32_BNDCFGS:
>> + if ( cpu_has_mpx )
>> + __vmwrite(GUEST_BNDCFGS, ctxt->msr[i].val); +
>> else + err = -ENXIO;
>> + break;
>> + default:
>> + continue;
>
> This will skip setting _rsvd for an MSR we don't recognise. Doesn't
> this interfere with the error checking in the caller?
>
It's OK. It's is for not-recognised-MSR got checked at the caller.
If a MSR was not recognised by vmx/svm specific handler or generic msr handler,
return error.
Thanks,
Jinsong
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |