From: Razvan Cojocaru Date: Thu, 13 Aug 2015 12:46:25 +0000 (+0200) Subject: x86/hvm: fix non-onchangeonly CR write events logic X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~2624^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=421850a06d54dbe48f8e5979d3453428071db4fd;p=xen.git x86/hvm: fix non-onchangeonly CR write events logic hvm_event_crX() already returns a bool_t to tell us whether an event will be sent out or not, so the extra check that value != old is not only useless, but also prevents non-onchangeonly events from being sent. Signed-off-by: Razvan Cojocaru Reviewed-by: Andrew Cooper Release-acked-by: Wei Liu --- diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index c9576109d3..707ad86d11 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3368,8 +3368,7 @@ int hvm_set_cr0(unsigned long value, bool_t may_defer) } if ( may_defer && unlikely(currad->monitor.write_ctrlreg_enabled & - monitor_ctrlreg_bitmask(VM_EVENT_X86_CR0)) && - value != old_value ) + monitor_ctrlreg_bitmask(VM_EVENT_X86_CR0)) ) { ASSERT(currad->event_write_data != NULL); @@ -3472,8 +3471,7 @@ int hvm_set_cr3(unsigned long value, bool_t may_defer) struct arch_domain *currad = &v->domain->arch; if ( may_defer && unlikely(currad->monitor.write_ctrlreg_enabled & - monitor_ctrlreg_bitmask(VM_EVENT_X86_CR3)) && - value != old ) + monitor_ctrlreg_bitmask(VM_EVENT_X86_CR3)) ) { ASSERT(currad->event_write_data != NULL); @@ -3546,8 +3544,7 @@ int hvm_set_cr4(unsigned long value, bool_t may_defer) } if ( may_defer && unlikely(currad->monitor.write_ctrlreg_enabled & - monitor_ctrlreg_bitmask(VM_EVENT_X86_CR4)) && - value != old_cr ) + monitor_ctrlreg_bitmask(VM_EVENT_X86_CR4)) ) { ASSERT(currad->event_write_data != NULL);