According to Intel SDM, section "VMXON - Enter VMX Operation", a
VMfail should be returned to L1 hypervisor if L1 vmxon is executed in
VMX operation, rather than just print a warning message.
Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Kevin Tian <kevin.tian@intel.com>
return rc;
if ( nvmx_vcpu_in_vmx(v) )
- gdprintk(XENLOG_WARNING,
- "vmxon again: orig %"PRIpaddr" new %lx\n",
- nvmx->vmxon_region_pa, gpa);
+ {
+ vmreturn(regs,
+ nvcpu->nv_vvmcxaddr != VMCX_EADDR ?
+ VMFAIL_VALID : VMFAIL_INVALID);
+ return X86EMUL_OKAY;
+ }
nvmx->vmxon_region_pa = gpa;