From: "H. Peter Anvin" <hpa@zytor.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>, Ingo Molnar <mingo@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Cyrill Gorcunov <gorcunov@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Thomas Gleixner <tglx@linutronix.de>,
David Miller <davem@davemloft.net>,
"Theodore Ts'o" <tytso@mit.edu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
the arch/x86 maintainers <x86@kernel.org>,
Network Development <netdev@vger.kernel.org>,
"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH] x86: make DR*_RESERVED unsigned long
Date: Wed, 24 Apr 2013 16:06:38 -0700 [thread overview]
Message-ID: <5178657E.9020905@zytor.com> (raw)
In-Reply-To: <CAFTL4hzmW43o8dxW0_E7F00a+PT+T4=F4h=gdCxHvcZhMiH3-w@mail.gmail.com>
On 04/24/2013 03:48 PM, Frederic Weisbecker wrote:
> 2013/4/24 Oleg Nesterov <oleg@redhat.com>:
>> DR6_RESERVED and DR_CONTROL_RESERVED are used to clear the set
>> bits in the "unsigned long" data, make them long to ensure that
>> "&~" doesn't clear the upper bits.
>>
>> do_debug() and ptrace_write_dr7() which use DR*_RESERVED look
>> safe, but probably it makes sense to cleanup anyway.
>
> Agreed. The code looks safe, but the pattern is error prone. I'm all
> for that cleanup.
> Just something below:
>
>>
>> Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
>> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
>> ---
>> arch/x86/include/uapi/asm/debugreg.h | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/include/uapi/asm/debugreg.h b/arch/x86/include/uapi/asm/debugreg.h
>> index 3c0874d..75d07dd 100644
>> --- a/arch/x86/include/uapi/asm/debugreg.h
>> +++ b/arch/x86/include/uapi/asm/debugreg.h
>> @@ -15,7 +15,7 @@
>> are either reserved or not of interest to us. */
>>
>> /* Define reserved bits in DR6 which are always set to 1 */
>> -#define DR6_RESERVED (0xFFFF0FF0)
>> +#define DR6_RESERVED (0xFFFF0FF0ul)
>
> You told in an earlier email that intel manual says upper 32 bits of
> dr6 are reserved.
> In this case don't we need to expand the mask in 64 bits like is done
> for DR_CONTROL_RESERVED?
>
Arguably this would be a *good* use for ~ ...
Instead of defining separate bitmasks for 32 and 64 bits have the
reciprocal (non-reserved bits):
#define DR6_RESERVED (~0x0000F00FUL)
That does have the right value on both 32 and 64 bits. The leading
zeroes aren't even really needed.
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].
-hpa
next prev parent reply other threads:[~2013-04-24 23:06 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CA+55aFwpLu0qNms=hkQr43yqD0K9DgESNm91OEWKT1ZuT8MU6Q@mail.gmail.com>
2013-04-23 0:23 ` Unsigned widening casts of binary "not" operations Linus Torvalds
2013-04-23 8:59 ` David Laight
2013-04-23 8:59 ` David Laight
2013-04-23 14:29 ` Linus Torvalds
2013-04-23 15:24 ` David Laight
2013-04-23 15:24 ` David Laight
2013-04-23 15:42 ` Linus Torvalds
2013-04-23 15:52 ` Theodore Ts'o
2013-04-23 16:05 ` Linus Torvalds
2013-04-23 17:37 ` David Miller
2013-04-23 17:52 ` Linus Torvalds
2013-04-23 17:56 ` David Miller
2013-04-23 18:21 ` Linus Torvalds
2013-04-24 12:36 ` Geert Uytterhoeven
2013-04-23 0:32 ` H. Peter Anvin
2013-04-23 13:00 ` Theodore Ts'o
2013-04-24 7:26 ` Ingo Molnar
2013-04-24 7:47 ` Cyrill Gorcunov
2013-04-25 1:13 ` Lin Ming
2013-04-24 17:07 ` [PATCH] x86: make DR*_RESERVED unsigned long Oleg Nesterov
2013-04-24 18:45 ` H. Peter Anvin
2013-04-25 14:48 ` Oleg Nesterov
2013-04-26 16:38 ` [PATCH v2] " Oleg Nesterov
2013-04-26 16:44 ` H. Peter Anvin
2013-04-26 17:15 ` Oleg Nesterov
2013-04-27 14:45 ` Oleg Nesterov
2013-04-27 16:20 ` H. Peter Anvin
2013-04-28 0:58 ` Frederic Weisbecker
2013-04-28 17:27 ` Oleg Nesterov
2013-04-28 17:32 ` H. Peter Anvin
2013-04-28 17:39 ` Oleg Nesterov
2013-04-28 17:43 ` H. Peter Anvin
2013-04-24 22:48 ` [PATCH] " Frederic Weisbecker
2013-04-24 23:06 ` H. Peter Anvin [this message]
2013-04-24 23:31 ` Frederic Weisbecker
2013-04-25 1:20 ` H. Peter Anvin
2013-04-26 14:20 ` [tip:perf/core] perf/x86/intel/P4: Robistify P4 PMU types tip-bot for Ingo Molnar
2013-04-26 16:13 ` Borislav Petkov
2013-04-26 16:24 ` Cyrill Gorcunov
2013-04-26 16:39 ` Borislav Petkov
2013-04-26 16:46 ` Cyrill Gorcunov
2013-04-27 16:14 ` Borislav Petkov
2013-04-27 16:33 ` Cyrill Gorcunov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5178657E.9020905@zytor.com \
--to=hpa@zytor.com \
--cc=a.p.zijlstra@chello.nl \
--cc=davem@davemloft.net \
--cc=fweisbec@gmail.com \
--cc=gorcunov@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.