diff options
author | Monam Agarwal <monamagarwal123@gmail.com> | 2014-04-07 15:38:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-07 16:36:07 -0700 |
commit | 3f59b067c5140766591a64a3117d86978c57509b (patch) | |
tree | db029b39b6c20c33b07eb486983b9ed19ab3cbc9 /lib/idr.c | |
parent | 90ae3ae539246984d36e43b0e23554bca941476f (diff) | |
download | linux-stable-3f59b067c5140766591a64a3117d86978c57509b.tar.gz linux-stable-3f59b067c5140766591a64a3117d86978c57509b.tar.bz2 linux-stable-3f59b067c5140766591a64a3117d86978c57509b.zip |
lib/idr.c: use RCU_INIT_POINTER(x, NULL)
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 <monamagarwal123@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/idr.c')
-rw-r--r-- | lib/idr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/idr.c b/lib/idr.c index ba2df393c3b0..2642fa8e424d 100644 --- a/lib/idr.c +++ b/lib/idr.c @@ -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) @@ -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; |