X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx.c;h=544b8488e8ef276aaddadb84462b1a1b1d8aefe9;hb=c0ecfba627c1d6c3f46d59bd4e5e6f883a494dc4;hp=23d631a79f1c61a088c091f1945fad007b6479fd;hpb=3650bf4aaa4f83afae52c8fee98fce6e3ee68deb;p=palacios.git diff --git a/palacios/src/palacios/vmx.c b/palacios/src/palacios/vmx.c index 23d631a..544b848 100644 --- a/palacios/src/palacios/vmx.c +++ b/palacios/src/palacios/vmx.c @@ -546,7 +546,10 @@ static int init_vmcs_bios(struct guest_info * core, struct vmx_data * vmx_state) vmx_ret |= check_vmcs_write(VMCS_LINK_PTR_HIGH, (addr_t)0xffffffffUL); #endif - + if (vmx_ret != VMX_SUCCESS) { + PrintError(core->vm_info, core, "Error configuring VMX\n"); + return -1; + } @@ -621,6 +624,11 @@ static void __init_vmx_vmcs(void * arg) { PrintDebug(core->vm_info, core, "Serializing VMCS: %p\n", (void *)vmx_state->vmcs_ptr_phys); vmx_ret = vmcs_clear(vmx_state->vmcs_ptr_phys); + if (vmx_ret != VMX_SUCCESS) { + PrintError(core->vm_info,core,"VMCS Clear failed\n"); + return; + } + core->core_run_state = CORE_STOPPED; return; } @@ -1259,6 +1267,18 @@ int v3_start_vmx_guest(struct guest_info * info) { } +#ifdef V3_CONFIG_HVM + if (v3_handle_hvm_reset(info) > 0) { + continue; + } +#endif + +#ifdef V3_CONFIG_MULTIBOOT + if (v3_handle_multiboot_reset(info) > 0) { + continue; + } +#endif + #ifdef V3_CONFIG_PMU_TELEMETRY v3_pmu_telemetry_start(info); #endif