X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx_handler.c;h=60dde4582e959fad33815a3989d5481d6b06111f;hb=457220e0485aefc6efecbc81ab1343b9cb65d8ba;hp=5af3122c84f432abe2e6579a61294bc14e3eb594;hpb=a7b07dc7f3bd9c28b0fbfb3c685a306326d56e76;p=palacios.git diff --git a/palacios/src/palacios/vmx_handler.c b/palacios/src/palacios/vmx_handler.c index 5af3122..60dde45 100644 --- a/palacios/src/palacios/vmx_handler.c +++ b/palacios/src/palacios/vmx_handler.c @@ -102,6 +102,9 @@ int v3_handle_vmx_exit(struct guest_info * info, struct vmx_exit_info * exit_inf PrintError("Page fault in unimplemented paging mode\n"); return -1; } + } else if ((uint8_t)exit_info->int_info == 2) { + // NMI. Don't do anything + V3_Print("NMI Exception Received\n"); } else { PrintError("Unknown exception: 0x%x\n", (uint8_t)exit_info->int_info); v3_print_GPRs(info); @@ -267,7 +270,10 @@ int v3_handle_vmx_exit(struct guest_info * info, struct vmx_exit_info * exit_inf // This is handled in the atomic part of the vmx code, // not in the generic (interruptable) vmx handler break; - + case VMEXIT_EXPIRED_PREEMPT_TIMER: + V3_Print("VMX Preempt Timer Expired.\n"); + // This just forces an exit and is handled outside the switch + break; default: PrintError("Unhandled VMEXIT: %s (%u), %lu (0x%lx)\n",