VMM: vmresume works! (handle IRQ)
authorRonald G. Minnich <rminnich@gmail.com>
Thu, 16 Apr 2015 21:22:24 +0000 (14:22 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 18 Jun 2015 19:17:14 +0000 (15:17 -0400)
Things are way smoother; we exit the vm loop when we get an interrupt.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
kern/arch/x86/vmm/intel/vmx.c

index 65d005a..4352efd 100644 (file)
@@ -1409,6 +1409,7 @@ int vmx_launch(uint64_t rip, uint64_t rsp, uint64_t cr3)
                                vcpu->shutdown = SHUTDOWN_NMI_EXCEPTION;
                } else if (ret == EXIT_REASON_EXTERNAL_INTERRUPT) {
                        printk("External interrupt\n");
+                       vcpu->shutdown = SHUTDOWN_UNHANDLED_EXIT_REASON;
                } else {
                        printk("unhandled exit: reason 0x%x, exit qualification 0x%x\n",
                               ret, vmcs_read32(EXIT_QUALIFICATION));