lkml.org 
[lkml]   [2014]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 0/9] Replace rcu_assign_pointer(x, NULL) with RCU_INIT_POINTER(x,NULL)
    On Thu, Mar 20, 2014 at 03:58:52PM +0100, Arend van Spriel wrote:
    > On 20/03/14 15:37, Monam Agarwal wrote:
    > >This patchset uses following coccinelle script to replace
    > >rcu_assign_pointer(x, NULL) with RCU_INIT_POINTER(x,NULL)
    > >
    > >@@
    > >expression E;
    > >@@
    > >- rcu_assign_pointer(
    > >+ RCU_INIT_POINTER(
    > >E, NULL)
    >
    > I am not very familiar with rcu functionality nor coccinelle, but it
    > looks too generic. I would think only NULL assignments during
    > initialization should use RCU_INIT_POINTER(). The first patch in the
    > series does it in a function called unregister_...(). Is it really
    > ok to do there?

    Hello, Arend,

    The thing that rcu_assign_pointer() is doing is ensuring 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 nothing need be ordered.

    So, yes, rcu_assign_pointer(p, NULL) can always safely be converted to
    RCU_INIT_POINTER(p, NULL). ;-)

    Thanx, Paul



    \
     
     \ /
      Last update: 2014-03-20 16:41    [W:3.797 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site