Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c956674b authored by Monam Agarwal's avatar Monam Agarwal Committed by David S. Miller
Browse files

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: default avatarMonam Agarwal <monamagarwal123@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8800a244
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -452,7 +452,7 @@ static void __tun_detach(struct tun_file *tfile, bool clean)

		--tun->numqueues;
		if (clean) {
			rcu_assign_pointer(tfile->tun, NULL);
			RCU_INIT_POINTER(tfile->tun, NULL);
			sock_put(&tfile->sk);
		} else
			tun_disable_queue(tun, tfile);
@@ -499,12 +499,12 @@ static void tun_detach_all(struct net_device *dev)
		tfile = rtnl_dereference(tun->tfiles[i]);
		BUG_ON(!tfile);
		wake_up_all(&tfile->wq.wait);
		rcu_assign_pointer(tfile->tun, NULL);
		RCU_INIT_POINTER(tfile->tun, NULL);
		--tun->numqueues;
	}
	list_for_each_entry(tfile, &tun->disabled, next) {
		wake_up_all(&tfile->wq.wait);
		rcu_assign_pointer(tfile->tun, NULL);
		RCU_INIT_POINTER(tfile->tun, NULL);
	}
	BUG_ON(tun->numqueues != 0);

@@ -2194,7 +2194,7 @@ static int tun_chr_open(struct inode *inode, struct file * file)
					    &tun_proto);
	if (!tfile)
		return -ENOMEM;
	rcu_assign_pointer(tfile->tun, NULL);
	RCU_INIT_POINTER(tfile->tun, NULL);
	tfile->net = get_net(current->nsproxy->net_ns);
	tfile->flags = 0;
	tfile->ifindex = 0;