lkml.org 
[lkml]   [2012]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 06/14] rcu: Remove return value from RCU_INIT_POINTER()
    Date
    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>
    ---
    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:01    [W:0.024 / U:22.424 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site