x86/mem_event: fix regression affecting CR0 memory events
authorTamas K Lengyel <tamas.lengyel@zentific.com>
Wed, 23 Jul 2014 16:05:11 +0000 (18:05 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 23 Jul 2014 16:05:11 +0000 (18:05 +0200)
This is a patch repairing a regression in code previously functional in 4.1.x.
It appears that, during some refactoring work, call to hvm_memory_event_cr0 was lost.

This function was originally called in mov_to_cr() of vmx.c, but the commit
http://xenbits.xen.org/hg/xen-unstable.hg/rev/1276926e3795 abstracted the
original code into generic functions up a level in hvm.c, dropping the call
in the process.

The same issue affected the CR3 and CR4 events, which were fixed in patch
http://xenbits.xensource.com/hg/xen-unstable.hg/rev/7ab899e46347.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@zentific.com>
Reviewed-by: Tim Deegan <tim@xen.org>
xen/arch/x86/hvm/hvm.c

index db548140dd9a276eb242207af958c0e00111ff60..fea6d05cc3c21e433f6c68c1bbdfc5caef0b11f3 100644 (file)
@@ -3200,6 +3200,7 @@ int hvm_set_cr0(unsigned long value)
         hvm_funcs.handle_cd(v, value);
 
     hvm_update_cr(v, 0, value);
+    hvm_memory_event_cr0(value, old_value);
 
     if ( (value ^ old_value) & X86_CR0_PG ) {
         if ( !nestedhvm_vmswitch_in_progress(v) && nestedhvm_vcpu_in_guestmode(v) )