On 10/07/2017 11:17, David Hildenbrand wrote:
>> +
>> +    vmcs12 = get_vmcs12(vcpu);
>> +    if ((vmcs12->vm_function_control & (1 << function)) == 0)
> (learned that in c, shifting beyond the type size is undefined)
> 
> Should we check for function < 64 here? (as SDM mentions)

It should be already.  The manual says:

The VMFUNC instruction causes an invalid-opcode exception (#UD) if the
“enable VM functions” VM-execution controls is 0 1 or the value of EAX
is greater than 63 (only VM functions 0–63 can be enable). Otherwise,
the instruction causes a VM exit if the bit at position EAX is 0 in the
VM-function controls (the selected VM function is not enabled).

Paolo

Reply via email to