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