lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 23 Mar 2014 12:54:17 -0700 From: Eric Dumazet <eric.dumazet@...il.com> To: "Michael S. Tsirkin" <mst@...hat.com> Cc: Monam Agarwal <monamagarwal123@...il.com>, davem@...emloft.net, jasowang@...hat.com, xemul@...allels.com, wuzhy@...ux.vnet.ibm.com, therbert@...gle.com, yamato@...hat.com, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, paulmck@...ux.vnet.ibm.com Subject: Re: [PATCH] drivers/net: Use RCU_INIT_POINTER(x, NULL) in tun.c On Sun, 2014-03-23 at 21:41 +0200, Michael S. Tsirkin wrote: > The rcu_assign_pointer() ensures that the initialization of a structure > is carried out before storing a pointer to that structure. > In the case of the NULL pointer, there is no structure to initialize, > so we can safely drop smp_wmb in this case. > > Signed-off-by: Michael S. Tsirkin <mst@...hat.com> > > -- > > Lightly tested. > v is evaluated twice here but that should be ok since this > only happens when v is a constant, so evaluating it should > have no side effects. > Paul, what do you think? > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > index 72bf3a0..d33c9ec 100644 > --- a/include/linux/rcupdate.h > +++ b/include/linux/rcupdate.h > @@ -587,7 +587,8 @@ static inline void rcu_preempt_sleep_check(void) > */ > #define rcu_assign_pointer(p, v) \ > do { \ > - smp_wmb(); \ > + if (!__builtin_constant_p(v) || (v)) \ > + smp_wmb(); \ > ACCESS_ONCE(p) = RCU_INITIALIZER(v); \ > } while (0) > Yeah, I suggest you read d322f45ceed525daa changelog ;) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists