Skip to content

Commit

Permalink
lib/idr.c: use RCU_INIT_POINTER(x, NULL)
Browse files Browse the repository at this point in the history
Replace rcu_assign_pointer(x, NULL) with RCU_INIT_POINTER(x, NULL)

The rcu_assign_pointer() ensures that the initialization of a structure
is carried out before storing a pointer to that structure.  And in the
case of the NULL pointer, there is no structure to initialize.

So, rcu_assign_pointer(p, NULL) can be safely converted to
RCU_INIT_POINTER(p, NULL)

Signed-off-by: Monam Agarwal <[email protected]>
Acked-by: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
MonamAgarwal authored and torvalds committed Apr 7, 2014
1 parent 90ae3ae commit 3f59b06
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/idr.c
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ static void sub_remove(struct idr *idp, int shift, int id)
n = id & IDR_MASK;
if (likely(p != NULL && test_bit(n, p->bitmap))) {
__clear_bit(n, p->bitmap);
rcu_assign_pointer(p->ary[n], NULL);
RCU_INIT_POINTER(p->ary[n], NULL);
to_free = NULL;
while(*paa && ! --((**paa)->count)){
if (to_free)
Expand Down Expand Up @@ -602,7 +602,7 @@ static void __idr_remove_all(struct idr *idp)

n = idp->layers * IDR_BITS;
p = idp->top;
rcu_assign_pointer(idp->top, NULL);
RCU_INIT_POINTER(idp->top, NULL);
max = idr_max(idp->layers);

id = 0;
Expand Down

0 comments on commit 3f59b06

Please sign in to comment.