lkml.org 
[lkml]   [2012]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH tip/core/rcu 06/14] rcu: Remove return value from RCU_INIT_POINTER()
    On Fri, Jun 15, 2012 at 01:13:07PM -0700, Paul E. McKenney wrote:
    > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    >
    > The return value from RCU_INIT_POINTER() is not used, and using it
    > would be quite ugly, for example:
    >
    > q = RCU_INIT_POINTER(global_p, p);
    >
    > To prevent this sort of ugliness from appearing, this commit wraps
    > RCU_INIT_POINTER() in a do-while loop.
    >
    > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

    Reviewed-by: Josh Triplett <josh@joshtriplett.org>

    > include/linux/rcupdate.h | 4 +++-
    > 1 files changed, 3 insertions(+), 1 deletions(-)
    >
    > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
    > index eb92c21..f2cca02 100644
    > --- a/include/linux/rcupdate.h
    > +++ b/include/linux/rcupdate.h
    > @@ -904,7 +904,9 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
    > * the reader-accessible portions of the linked structure.
    > */
    > #define RCU_INIT_POINTER(p, v) \
    > - p = (typeof(*v) __force __rcu *)(v)
    > + do { \
    > + p = (typeof(*v) __force __rcu *)(v); \
    > + } while (0)
    >
    > /**
    > * INIT_RCU_POINTER() - statically initialize an RCU protected pointer
    > --
    > 1.7.8
    >


    \
     
     \ /
      Last update: 2012-06-15 23:21    [W:0.047 / U:0.612 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site