diff options
author | kib <kib@FreeBSD.org> | 2010-07-12 19:59:15 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2010-07-12 19:59:15 +0000 |
commit | 6589854493aa59a70090c377a114543734d47dce (patch) | |
tree | 3569dff85433762dac57a5ef9a8e7c3b8cc6cdbf /sys/amd64 | |
parent | 54ea1cadda373800f9957e92a09e0d7950e03aca (diff) | |
download | FreeBSD-src-6589854493aa59a70090c377a114543734d47dce.zip FreeBSD-src-6589854493aa59a70090c377a114543734d47dce.tar.gz |
When switching the thread from the processor, store %dr7 content
into the pcb before disabling watchpoints. Otherwise, when the
thread is restored on a processor, watchpoints are still disabled.
Submitted by: Tijl Coosemans <tijl coosemans org>
(I would be much happier if Tijl commited this himself)
MFC after: 1 week
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/cpu_switch.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S index cfb4204..6b5c663 100644 --- a/sys/amd64/amd64/cpu_switch.S +++ b/sys/amd64/amd64/cpu_switch.S @@ -243,13 +243,13 @@ store_dr: movq %dr2,%r13 movq %dr3,%r12 movq %dr6,%r11 - andq $0x0000fc00, %rax /* disable all watchpoints */ movq %r15,PCB_DR0(%r8) movq %r14,PCB_DR1(%r8) movq %r13,PCB_DR2(%r8) movq %r12,PCB_DR3(%r8) movq %r11,PCB_DR6(%r8) movq %rax,PCB_DR7(%r8) + andq $0x0000fc00, %rax /* disable all watchpoints */ movq %rax,%dr7 jmp done_store_dr |