hvm/monitor: fix usage of the control register mask

Previous usage is not correct and would prevent certain updates from
being notified to the monitor client.

For example if (value ^ old) == (PGE | PSE) and mask == PGE this
update would not be notified.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
This commit is contained in:
Roger Pau Monne authored and Andrew Cooper committed 2018-02-16 20:16:23 +00:00
1 parent 24882b38d6
commit 24470b99c1
1 file changed
+1 -1
+1 -1
View File
@@ -39,7 +39,7 @@ bool hvm_monitor_cr(unsigned int index, unsigned long value, unsigned long old)
if ( (ad->monitor.write_ctrlreg_enabled & ctrlreg_bitmask) &&
(!(ad->monitor.write_ctrlreg_onchangeonly & ctrlreg_bitmask) ||
value != old) &&
(!((value ^ old) & ad->monitor.write_ctrlreg_mask[index])) )
((value ^ old) & ~ad->monitor.write_ctrlreg_mask[index]) )
{
bool sync = ad->monitor.write_ctrlreg_sync & ctrlreg_bitmask;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.