mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/emul: Fix misaligned IO breakpoint behaviour in PV guests
When hardware breakpoints are configured on misaligned IO ports, the hardware will mask the addresses based on the breakpoint width during comparison. For PV guests, misaligned IO breakpoints do not behave the same way, and therefore yield different results. This patch tweaks the emulation of IO breakpoints for PV guests such that they reproduce the same behaviour as hardware. Fixes:bec9e32050("x86: emulate I/O port access breakpoints") Signed-off-by: Matthew Barnes <matthew.barnes@cloud.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> master commit:08aacc392dmaster date: 2024-08-08 13:27:50 +0200
This commit is contained in:
1 parent
8aa5245ef6
commit
d446b472cc
1 file changed
+2
@@ -346,6 +346,8 @@ static unsigned int check_guest_io_breakpoint(struct vcpu *v,
|
||||
case DR_LEN_8: width = 8; break;
|
||||
}
|
||||
|
||||
start &= ~(width - 1UL);
|
||||
|
||||
if ( (start < (port + len)) && ((start + width) > port) )
|
||||
match |= 1u << i;
|
||||
}
|
||||
|
||||