Re: [PATCH 2/3 v2] KVM: nVMX: Enable VMFUNC for the L1 hypervisor

From: Paolo Bonzini
Date: Mon Jul 10 2017 - 07:04:20 EST




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