drivers/net: Use RCU_INIT_POINTER(x, NULL) in tun.c
This patch replaces 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> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8800a244fa
commit
c956674b7c
@ -452,7 +452,7 @@ static void __tun_detach(struct tun_file *tfile, bool clean)
|
|||||||
|
|
||||||
--tun->numqueues;
|
--tun->numqueues;
|
||||||
if (clean) {
|
if (clean) {
|
||||||
rcu_assign_pointer(tfile->tun, NULL);
|
RCU_INIT_POINTER(tfile->tun, NULL);
|
||||||
sock_put(&tfile->sk);
|
sock_put(&tfile->sk);
|
||||||
} else
|
} else
|
||||||
tun_disable_queue(tun, tfile);
|
tun_disable_queue(tun, tfile);
|
||||||
@ -499,12 +499,12 @@ static void tun_detach_all(struct net_device *dev)
|
|||||||
tfile = rtnl_dereference(tun->tfiles[i]);
|
tfile = rtnl_dereference(tun->tfiles[i]);
|
||||||
BUG_ON(!tfile);
|
BUG_ON(!tfile);
|
||||||
wake_up_all(&tfile->wq.wait);
|
wake_up_all(&tfile->wq.wait);
|
||||||
rcu_assign_pointer(tfile->tun, NULL);
|
RCU_INIT_POINTER(tfile->tun, NULL);
|
||||||
--tun->numqueues;
|
--tun->numqueues;
|
||||||
}
|
}
|
||||||
list_for_each_entry(tfile, &tun->disabled, next) {
|
list_for_each_entry(tfile, &tun->disabled, next) {
|
||||||
wake_up_all(&tfile->wq.wait);
|
wake_up_all(&tfile->wq.wait);
|
||||||
rcu_assign_pointer(tfile->tun, NULL);
|
RCU_INIT_POINTER(tfile->tun, NULL);
|
||||||
}
|
}
|
||||||
BUG_ON(tun->numqueues != 0);
|
BUG_ON(tun->numqueues != 0);
|
||||||
|
|
||||||
@ -2194,7 +2194,7 @@ static int tun_chr_open(struct inode *inode, struct file * file)
|
|||||||
&tun_proto);
|
&tun_proto);
|
||||||
if (!tfile)
|
if (!tfile)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
rcu_assign_pointer(tfile->tun, NULL);
|
RCU_INIT_POINTER(tfile->tun, NULL);
|
||||||
tfile->net = get_net(current->nsproxy->net_ns);
|
tfile->net = get_net(current->nsproxy->net_ns);
|
||||||
tfile->flags = 0;
|
tfile->flags = 0;
|
||||||
tfile->ifindex = 0;
|
tfile->ifindex = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user