]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
x86/vm_event: reset monitor in vm_event_cleanup_domain()
authorRazvan Cojocaru <rcojocaru@bitdefender.com>
Fri, 29 Jan 2016 16:50:05 +0000 (17:50 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 29 Jan 2016 16:50:05 +0000 (17:50 +0100)
It is currently possible to leave a monitor flag enabled even
after vm_event_cleanup_domain() has been called, potentially
leading to a crash in hvm_msr_write_intercept() and hvm_set_crX()
(when v->arch.vm_event has become NULL, but the corresponding
corresponding v->domain->arch.monitor flag is non-zero).
This patch zeroes out arch.monitor in vm_event_cleanup_domain().

Signed-off-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>
xen/arch/x86/vm_event.c

index 9677eccb40048c4a5a59bbbb71e7e01c657c3c75..08d678a9cf345044276f661e6079433139c7cb27 100644 (file)
@@ -56,6 +56,7 @@ void vm_event_cleanup_domain(struct domain *d)
     }
 
     d->arch.mem_access_emulate_each_rep = 0;
+    memset(&d->arch.monitor, 0, sizeof(d->arch.monitor));
 }
 
 void vm_event_toggle_singlestep(struct domain *d, struct vcpu *v)