All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ren Qiaowei <qiaowei.ren@intel.com>
To: David Rientjes <rientjes@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 4/4] x86, mpx: extend siginfo structure to include bound violation information
Date: Mon, 27 Jan 2014 09:34:34 +0800	[thread overview]
Message-ID: <52E5B7AA.9060205@intel.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1401261335400.26515@chino.kir.corp.google.com>

On 01/27/2014 05:38 AM, David Rientjes wrote:
> On Sun, 26 Jan 2014, Ren Qiaowei wrote:
>
>>> arch/x86/kernel/mpx.c: In function ‘do_mpx_bounds’:
>>> arch/x86/kernel/mpx.c:407:3: warning: cast to pointer from integer of
>>> different size [-Wint-to-pointer-cast]
>>> arch/x86/kernel/mpx.c:409:3: warning: cast to pointer from integer of
>>> different size [-Wint-to-pointer-cast]
>>>
>>> and the documentation says you explicitly want to support this config.
>>>
>>> These types of warnings are usually indicative of real problems when
>>> you're storing upper and lower bits in 32-bit fields after casting them
>>> from 64-bit values.
>>>
>>> I'm also not sure if the added fields to the generic struct siginfo can be
>>> justified for this.
>>>
>> According to MPX spec, for 32-bit case, the upper 32-bits of 64-bits bound
>> register are ignored, and so casting to pointer from 64-bit values should be
>> not produce any problems.
>>
>
> Ok, so this is intended per the spec which nobody reading the code is
> going to know and people who report the compile warnings are going to
> continue to question it.
>
> How are you planning on suppressing the warnings?  It will probably
> require either
>
>   - separate 64-bit and 32-bit helper functions to do_mpx_bounds() to
>     do appropriate casts before casting to a pointer, or
>
>   - a macro defined as a no-op for 64-bit and as a cast to 32-bit value
>     for 32-bit configs that will be used in do_mpx_bounds() and casted
>     to the pointer.
>
I agree with you and we should suppress all the warnings as possible. If 
I use (unsgined long) to cast like the following code, what do you think 
about it? sizeof(long) will be 4 for 32-bit.

     info->si_lower = (void __user *)(unsigned long)
         (xsave_buf->bndregs.bndregs[2*bndregno]);
     info->si_upper = (void __user *)(unsigned long)
	(~xsave_buf->bndregs.bndregs[2*bndregno+1]);

Thanks,
Qiaowei

  reply	other threads:[~2014-01-27  1:40 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-26  9:08 [PATCH v3 0/4] Intel MPX support Qiaowei Ren
2014-01-26  8:19 ` Ingo Molnar
2014-01-26  8:20   ` Ren Qiaowei
2014-01-28  6:42     ` Ingo Molnar
2014-01-28  7:01       ` Ren Qiaowei
2014-01-28 18:26         ` H. Peter Anvin
2014-01-26  9:08 ` [PATCH v3 1/4] x86, mpx: add documentation on Intel MPX Qiaowei Ren
2014-01-26  3:06   ` Randy Dunlap
2014-01-26  3:15     ` Ren Qiaowei
2014-01-27 20:27   ` Andy Lutomirski
2014-01-28  3:40     ` Ren Qiaowei
2014-01-26  9:08 ` [PATCH v3 2/4] x86, mpx: hook #BR exception handler to allocate bound tables Qiaowei Ren
2014-01-27 20:36   ` Andy Lutomirski
2014-01-28  3:35     ` Ren Qiaowei
2014-01-28  5:21       ` Andy Lutomirski
2014-01-28  5:39         ` Ren Qiaowei
2014-01-28  6:42           ` Andy Lutomirski
2014-01-28  6:46             ` Ren Qiaowei
2014-01-26  9:08 ` [PATCH v3 3/4] x86, mpx: add prctl commands PR_MPX_INIT, PR_MPX_RELEASE Qiaowei Ren
2014-01-26  8:22   ` Ingo Molnar
2014-01-26  8:23     ` Ren Qiaowei
2014-01-26  8:39       ` Ingo Molnar
2014-01-26 11:37         ` Ren, Qiaowei
2014-01-27  1:50         ` H. Peter Anvin
2014-01-27  1:55           ` Ren Qiaowei
2014-01-27  2:10             ` H. Peter Anvin
2014-01-27  2:16               ` Ren Qiaowei
2014-01-27 21:54               ` Andy Lutomirski
2014-01-27 22:01                 ` H. Peter Anvin
2014-01-26  9:08   ` Ingo Molnar
2014-01-26 12:49     ` Ren, Qiaowei
2014-01-26 15:14       ` Ingo Molnar
2014-01-27  2:01         ` Ren Qiaowei
2014-01-27 20:59   ` Andy Lutomirski
2014-01-26  9:08 ` [PATCH v3 4/4] x86, mpx: extend siginfo structure to include bound violation information Qiaowei Ren
2014-01-26  4:22   ` David Rientjes
2014-01-26  4:39     ` Ren Qiaowei
2014-01-26 21:38       ` David Rientjes
2014-01-27  1:34         ` Ren Qiaowei [this message]
2014-01-27  1:53           ` H. Peter Anvin
2014-01-27  1:56             ` Ren Qiaowei
2014-01-27 21:58   ` Andy Lutomirski
2014-01-28  2:43     ` Ren Qiaowei

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=52E5B7AA.9060205@intel.com \
    --to=qiaowei.ren@intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rientjes@google.com \
    --cc=tglx@linutronix.de \
    --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.