[xen stable-4.8] x86/pv: Fix the handing of writes to %dr7
Author: Andrew Cooper <[hidden email]>
AuthorDate: Wed Apr 18 16:47:39 2018 +0200
Commit: Jan Beulich <[hidden email]>
CommitDate: Wed Apr 18 16:47:39 2018 +0200
x86/pv: Fix the handing of writes to %dr7
c/s 65e35549 "x86/PV: support data breakpoint extension registers"
accidentally broke the handing of writes. The call to activate_debugregs()
doesn't write %dr7 as v->arch.debugreg hasn't been updated yet, and the
break skips the intended write to %dr7.
Remove the break, causing execution to hit the write_debugreg(7, value); in
context at the bottom of the hunk, which in turn causes hardware to be updated
Signed-off-by: Andrew Cooper <[hidden email]>
Reviewed-by: Jan Beulich <[hidden email]>
master commit: adf8feba1afa040f3a84a82953e18af02060884a
master date: 2018-03-29 15:12:21 +0100
xen/arch/x86/traps.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index edb3fa4720..419747342e 100644
@@ -4499,14 +4499,11 @@ long set_debugreg(struct vcpu *v, unsigned int reg, unsigned long value)
* If DR7 was previously clear then we need to load all other
* debug registers at this point as they were not restored during
- * context switch.
+ * context switch. Updating DR7 itself happens later.
if ( (v == curr) &&
!(v->arch.debugreg & DR7_ACTIVE_MASK) )
if ( v == curr )
generated by git-patchbot for /home/xen/git/xen.git#stable-4.8