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>
This commit is contained in:
parent
90ae3ae539
commit
3f59b067c5
|
@ -533,7 +533,7 @@ static void sub_remove(struct idr *idp, int shift, int id)
|
||||||
n = id & IDR_MASK;
|
n = id & IDR_MASK;
|
||||||
if (likely(p != NULL && test_bit(n, p->bitmap))) {
|
if (likely(p != NULL && test_bit(n, p->bitmap))) {
|
||||||
__clear_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;
|
to_free = NULL;
|
||||||
while(*paa && ! --((**paa)->count)){
|
while(*paa && ! --((**paa)->count)){
|
||||||
if (to_free)
|
if (to_free)
|
||||||
|
@ -602,7 +602,7 @@ static void __idr_remove_all(struct idr *idp)
|
||||||
|
|
||||||
n = idp->layers * IDR_BITS;
|
n = idp->layers * IDR_BITS;
|
||||||
p = idp->top;
|
p = idp->top;
|
||||||
rcu_assign_pointer(idp->top, NULL);
|
RCU_INIT_POINTER(idp->top, NULL);
|
||||||
max = idr_max(idp->layers);
|
max = idr_max(idp->layers);
|
||||||
|
|
||||||
id = 0;
|
id = 0;
|
||||||
|
|
Loading…
Reference in New Issue