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 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.