On 10.07.2017 13:03, Paolo Bonzini wrote: > > > 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). > Thanks, I missed that paragraph. > Paolo > -- Thanks, David