From: Frederic Weisbecker Subject: Re: [PATCH] x86: make DR*_RESERVED unsigned long Date: Thu, 25 Apr 2013 00:48:57 +0200 Message-ID: References: <20130424072630.GB1780@gmail.com> <20130424170702.GA1867@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Cc: Ingo Molnar , Linus Torvalds , Cyrill Gorcunov , Peter Zijlstra , "H. Peter Anvin" , Thomas Gleixner , David Miller , "Theodore Ts'o" , Linux Kernel Mailing List , "the arch/x86 maintainers" , Network Development , "linux-ext4@vger.kernel.org" To: Oleg Nesterov Return-path: Received: from mail-la0-f43.google.com ([209.85.215.43]:64109 "EHLO mail-la0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758597Ab3DXWtB (ORCPT ); Wed, 24 Apr 2013 18:49:01 -0400 In-Reply-To: <20130424170702.GA1867@redhat.com> Sender: linux-ext4-owner@vger.kernel.org List-ID: 2013/4/24 Oleg Nesterov : > 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 > Signed-off-by: Oleg Nesterov > --- > 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? Thanks.