From: Josh Triplett <josh@joshtriplett.org>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>,
David Howells <dhowells@redhat.com>,
linux-kernel@vger.kernel.org, mingo@elte.hu,
laijs@cn.fujitsu.com, dipankar@in.ibm.com,
akpm@linux-foundation.org, mathieu.desnoyers@polymtl.ca,
dvhltc@us.ibm.com, niv@us.ibm.com, tglx@linutronix.de,
peterz@infradead.org, rostedt@goodmis.org,
Valdis.Kletnieks@vt.edu
Subject: Re: [PATCH tip/core/urgent 1/4] rcu: add rcu_access_pointer and rcu_dereference_protected
Date: Mon, 12 Apr 2010 12:24:42 -0700 [thread overview]
Message-ID: <20100412192441.GB27341@feather> (raw)
In-Reply-To: <20100409165735.GB2421@linux.vnet.ibm.com>
On Fri, Apr 09, 2010 at 09:57:35AM -0700, Paul E. McKenney wrote:
> On Fri, Apr 09, 2010 at 11:24:18AM +0200, Eric Dumazet wrote:
> > Le vendredi 09 avril 2010 à 10:10 +0100, David Howells a écrit :
> > > Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > >
> > > > +#define rcu_access_pointer(p) ((void *)ACCESS_ONCE(p))
> > > > ...
> > > > +#define rcu_access_pointer(p) ((void *)ACCESS_ONCE(p))
> > >
> > > There's no difference between your two versions of rcu_access_pointer(), so
> > > you could move that whole construct outside of the #ifdef'ed section.
> > >
> > > Other than that:
> > >
> > > Acked-by: David Howells <dhowells@redhat.com>
> >
> > I also prefer to keep type checking if possible
> >
> > #define rcu_access_pointer(p) (ACCESS_ONCE(p))
>
> Yikes! I was obsessing on preventing people from dereferencing the
> pointer, but you are quite right, they might be comparing it to a
> constant pointer to check for array bounds or for use of a statically
> allocated emergency-pool item.
If you want to prevent people from deferencing the pointer directly, or
from assigning it to some other pointer, you could use Sparse's
__attribute__((noderef)) and
__attribute__((address_space(...)).
See the definitions of __user and __iomem in include/linux/compiler.h
for instance. (And, looking at that file, now __percpu. Nice!)
You'd then have to explicitly use __force at the point where you
legitimately dereference it.
- Josh Triplett
next prev parent reply other threads:[~2010-04-12 19:25 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-09 5:47 [PATCH tip/core/urgent] rcu: updates for RCU lockdep Paul E. McKenney
2010-04-09 5:47 ` [PATCH tip/core/urgent 1/4] rcu: add rcu_access_pointer and rcu_dereference_protected Paul E. McKenney
2010-04-09 9:10 ` David Howells
2010-04-09 9:24 ` Eric Dumazet
2010-04-09 16:57 ` Paul E. McKenney
2010-04-12 19:24 ` Josh Triplett [this message]
2010-04-12 20:30 ` Arnd Bergmann
2010-04-12 20:52 ` Paul E. McKenney
2010-04-09 16:56 ` Paul E. McKenney
2010-04-09 5:47 ` [PATCH tip/core/urgent 2/4] RCU: Better explain the condition parameter of rcu_dereference_check() Paul E. McKenney
2010-04-09 9:11 ` David Howells
2010-04-09 5:47 ` [PATCH tip/core/urgent 3/4] rcu: Update docs for rcu_access_pointer and rcu_dereference_protected Paul E. McKenney
2010-04-09 9:16 ` David Howells
2010-04-09 5:47 ` [PATCH tip/core/urgent 4/4] rcu: fix syntax error in rcu_dereference_check() example in comment Paul E. McKenney
2010-04-09 9:17 ` David Howells
2010-04-09 16:59 ` Paul E. McKenney
2010-04-09 8:59 ` [PATCH tip/core/urgent] rcu: updates for RCU lockdep Lai Jiangshan
2010-04-09 22:38 ` [PATCH tip/core/urgent] v2 " Paul E. McKenney
2010-04-09 22:39 ` [PATCH tip/core/urgent 1/3] rcu: add rcu_access_pointer and rcu_dereference_protected Paul E. McKenney
2010-04-10 6:03 ` Eric Dumazet
2010-04-10 8:13 ` David Howells
2010-04-14 15:00 ` [tip:core/urgent] rcu: Add " tip-bot for Paul E. McKenney
2010-04-09 22:39 ` [PATCH tip/core/urgent 2/3] RCU: Better explain the condition parameter of rcu_dereference_check() Paul E. McKenney
2010-04-14 15:01 ` [tip:core/urgent] rcu: " tip-bot for David Howells
2010-04-09 22:39 ` [PATCH tip/core/urgent 3/3] rcu: Update docs for rcu_access_pointer and rcu_dereference_protected Paul E. McKenney
2010-04-14 15:01 ` [tip:core/urgent] " tip-bot for Paul E. McKenney
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=20100412192441.GB27341@feather \
--to=josh@joshtriplett.org \
--cc=Valdis.Kletnieks@vt.edu \
--cc=akpm@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=dvhltc@us.ibm.com \
--cc=eric.dumazet@gmail.com \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mingo@elte.hu \
--cc=niv@us.ibm.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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.