X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fmain.c;h=2199d88a760989684fa98fb1527b42b8ba39cbf6;hb=ccbe7e2ab17a32e671114f258abc1d047151be2e;hp=2da1b224552cb4a52880f5533a9a43635f6b9611;hpb=928297a7cf5ffbf3a210fcaf7556e681bbb436d5;p=palacios.git diff --git a/linux_module/main.c b/linux_module/main.c index 2da1b22..2199d88 100644 --- a/linux_module/main.c +++ b/linux_module/main.c @@ -326,7 +326,8 @@ static int read_guests_details(struct seq_file *s, void *v) base->state==V3_VM_STOPPED ? "stopped" : base->state==V3_VM_PAUSED ? "paused" : base->state==V3_VM_ERROR ? "ERROR" : - base->state==V3_VM_SIMULATING ? "simulating" : "UNKNOWN", + base->state==V3_VM_SIMULATING ? "simulating" : + base->state==V3_VM_RESETTING ? "resetting" : "UNKNOWN", core->num_vcores, mem->num_regions); seq_printf(s, "Core States\n"); @@ -337,7 +338,8 @@ static int read_guests_details(struct seq_file *s, void *v) j, core->vcore[j].state==V3_VCORE_INVALID ? "INVALID" : core->vcore[j].state==V3_VCORE_RUNNING ? "running" : - core->vcore[j].state==V3_VCORE_STOPPED ? "stopped" : "UNKNOWN", + core->vcore[j].state==V3_VCORE_STOPPED ? "stopped" : + core->vcore[j].state==V3_VCORE_RESETTING ? "resetting" : "UNKNOWN", core->vcore[j].pcore, core->vcore[j].num_exits, core->vcore[j].last_rip, @@ -684,8 +686,13 @@ static void __exit v3_exit(void) { /* Stop and free any running VMs */ for (i = 0; i < MAX_VMS; i++) { - if (guest_map[i] != NULL) { - guest = (struct v3_guest *)guest_map[i]; + if (guest_map[i] != NULL) { + guest = (struct v3_guest *)(guest_map[i]); + + if (!guest->v3_ctx) { + ERROR("Orphan VM detected and skipped: index=%d name=%s\n", i, guest->name); + continue; + } if (v3_stop_vm(guest->v3_ctx) < 0) ERROR("Couldn't stop VM %d\n", i);