Messages in this thread | | | Date | Wed, 24 Apr 2013 18:20:33 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH] x86: make DR*_RESERVED unsigned long |
| |
On 04/24/2013 04:31 PM, Frederic Weisbecker wrote: >> >> Now, DR6 is a bit special in that a bunch of the reserved bits are >> hardwired to 1, not 0; I don't know offhand if that is true for bits >> [63:32]. > > Hmm, good point, could it be a problem given that we clear the > reserved dr6 bits on do_trap() and write that 'cleaned up" value back > to "tsk->thread.debugreg6"? Probably not if those hardwired reserved > bits are set to "1" on dr6 physical write whether those bits are > cleared or not in their storage in thread struct before resuming the > task? >
OK, the SDM states that DR6[63:32] are reserved and must be written as zero (not one).
So the quiescent 64-bit value of DR6 is 0x0000_0000_FFFF_0FF0.
-hpa
| |