From: Johannes Berg <johannes@sipsolutions.net>
To: Jan Beulich <JBeulich@suse.com>
Cc: Ingo Molnar <mingo@kernel.org>,
x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH] x86: suppress sparse warning in copy_to_user()
Date: Tue, 04 Oct 2016 10:02:42 +0200 [thread overview]
Message-ID: <1475568162.5324.10.camel@sipsolutions.net> (raw)
In-Reply-To: <57F37B8A0200007800114C45@prv-mh.provo.novell.com>
On Tue, 2016-10-04 at 01:51 -0600, Jan Beulich wrote:
> >
> > >
> > > >
> > > > On 04.10.16 at 09:33, <johannes@sipsolutions.net> wrote:
> > From: Johannes Berg <johannes.berg@intel.com>
> >
> > __compiletime_object_size() is simply defined to
> > __builtin_object_size()
> > which gcc declares with (void *, int type) prototype.
>
> If that was the case, everyone should have seen such warnings from
> the day the original patch got introduced.
Only if they run sparse. Clearly people don't, or we wouldn't have a
history of a ton of such problems, e.g.
112dc0c8069e ("locking/barriers: Suppress sparse warnings in lockless_dereference()")
c15c0ab12fd6 ("ipv6: suppress sparse warnings in IP6_ECN_set_ce()")
1ea049b2de5d ("bvec: avoid variable shadowing warning")
(just to give a few of the examples I fixed recently). These are of
course double-plus annoying in header files, since they show up in
completely unrelated code when the header file is including, making the
tools effectively useless.
> And the compiler warnings
> I get when testing with all four combinations of const and volatile
> also supports this by saying "expected 'const void *' but ..."
It's not a compiler warning though that I'm getting.
What tool are you using to get such a warning?
On gcc 6.1.1, I'm getting no warning (from the compiler) either way,
even with W=2, and the gcc documentation notes the fact that it treats
it as passing void *:
https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html
> (arguably the compiler should accept volatile here too). To be
> honest, for code in other trees where I'm maintainer, I'd reject such
> casting away of constness, and demand the utility to get fixed
> instead.
That could be done, but arguably "the tool" (I suppose you also never
run sparse) is actually behaving correctly here - the "function" *is*
defined to pass void *, so it's a correct warning.
Regardless though, it's fairly pointless to worry about it here since
it's a builtin that's evaluated at compile time, so nothing can really
happen.
johannes
next prev parent reply other threads:[~2016-10-04 8:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-04 7:33 [PATCH] x86: suppress sparse warning in copy_to_user() Johannes Berg
2016-10-04 7:51 ` Jan Beulich
2016-10-04 8:02 ` Johannes Berg [this message]
2016-10-04 8:35 ` Jan Beulich
2016-10-04 8:49 ` Johannes Berg
2016-10-04 9:03 ` Jan Beulich
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=1475568162.5324.10.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=JBeulich@suse.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox