All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Laight <david.laight.linux@gmail.com>
To: Ricardo Ribalda <ribalda@chromium.org>
Cc: "Paul E. McKenney" <paulmck@kernel.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	Neeraj Upadhyay <neeraj.upadhyay@kernel.org>,
	Joel Fernandes <joelagnelf@nvidia.com>,
	Josh Triplett <josh@joshtriplett.org>,
	Boqun Feng <boqun@kernel.org>,
	Uladzislau Rezki <urezki@gmail.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	Zqiang <qiang.zhang@linux.dev>, Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Dan Carpenter <error27@gmail.com>,
	rcu@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] rcu: Fix casting while dereferencing rcu pointers
Date: Wed, 26 Aug 2026 14:22:04 +0100	[thread overview]
Message-ID: <20260826142204.7269edf7@pumpkin> (raw)
In-Reply-To: <CANiDSCtKVT9fnkx=-d2-aOd=uqODERFw-fAm6bg2eX=RXGMaXw@mail.gmail.com>

On Wed, 26 Aug 2026 13:28:42 +0200
Ricardo Ribalda <ribalda@chromium.org> wrote:

> Hi David
> 
> On Wed, 26 Aug 2026 at 11:55, David Laight <david.laight.linux@gmail.com> wrote:
> >
> > On Tue, 25 Aug 2026 20:02:10 +0000
> > Ricardo Ribalda <ribalda@chromium.org> wrote:  
> > >
> > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
> > > index 44c07a66edff..80276cedda80 100644
> > > --- a/include/linux/rcupdate.h
> > > +++ b/include/linux/rcupdate.h
> > > @@ -488,7 +488,7 @@ static __always_inline bool lockdep_assert_rcu_helper(bool c, const struct __ctx
> > >  context_unsafe(                                                              \
> > >       typeof(*p) *local = (typeof(*p) *__force)(p);                   \
> > >       rcu_check_sparse(p, __rcu);                                     \
> > > -     ((typeof(*p) __force __kernel *)(local))                        \
> > > +     ((TYPEOF_UNQUAL(*p) __force __kernel *)(local))                 \  
> >
> > Ugg... TYPEOF_UNQUAL() is absolutely horrid...
> > When __CHECKER__ is undefined the whole thing is just (p).  
> 
> About using __CHECKER__: Are you suggesting using #ifdef __CHECKER__
> to use TYPEOF_UNQUAL or the current code?
> 
> I am open to doing that, but I would like to hear from Paul if he
> favors adding the (also horrid) #ifdef to save some CPU cycles on
> older compilers.
> 
> >
> > I suspect reducing all the definitions would measurably improve
> > kernel compile time (even before these changes).  
> 
> When I checked earlier in the other patch in this patchset, with my
> compiler I can hardly see any difference in compilation times [1].
> This is probably because GCC15 direclty maps TYPEOF_UNQUAL to the
> built-in __typeof_unqual__.

I was thinking of the _Generic() version.

But here you only want to remove the (I think) __user marker.
I don't think you want to get rid of 'const'.
So you don't really want gcc to remove any qualifiers.

There is an similar(ish) issue when an __force cast is used to
remove one of the extra qualifiers.
You really want the compiler to ignore the cast - so it checks
the actual types match.

David

> 
> 
> Thanks!
> 
> 
> [1] https://lore.kernel.org/all/CANiDSCsMrULsrGQg76x28GRXLg+HSKFWhhA14Zcn8hdm4KyOVw@mail.gmail.com/
> 
> >
> > David  


  reply	other threads:[~2026-08-26 13:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-25 20:02 [PATCH 0/2] Fix warnings with recent smatch Ricardo Ribalda
2026-08-25 20:02 ` [PATCH 1/2] rcu: Fix casting while dereferencing rcu pointers Ricardo Ribalda
2026-08-26  9:55   ` David Laight
2026-08-26 11:28     ` Ricardo Ribalda
2026-08-26 13:22       ` David Laight [this message]
2026-08-26 14:03         ` Ricardo Ribalda
2026-09-09 20:35           ` Paul E. McKenney
2026-08-25 20:02 ` [PATCH 2/2] x86/uaccess: Fix casting in put_user Ricardo Ribalda
2026-08-25 21:06   ` Dave Hansen
2026-08-25 21:15     ` Ricardo Ribalda
2026-08-25 22:38       ` Dave Hansen
2026-08-26  9:58       ` David Laight
2026-08-26 11:11         ` Ricardo Ribalda

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=20260826142204.7269edf7@pumpkin \
    --to=david.laight.linux@gmail.com \
    --cc=boqun@kernel.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=error27@gmail.com \
    --cc=frederic@kernel.org \
    --cc=hpa@zytor.com \
    --cc=jiangshanlai@gmail.com \
    --cc=joelagnelf@nvidia.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@redhat.com \
    --cc=neeraj.upadhyay@kernel.org \
    --cc=paulmck@kernel.org \
    --cc=qiang.zhang@linux.dev \
    --cc=rcu@vger.kernel.org \
    --cc=ribalda@chromium.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@kernel.org \
    --cc=urezki@gmail.com \
    --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.