diff options
author | David S. Miller <davem@davemloft.net> | 2019-06-22 08:59:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-22 08:59:24 -0400 |
commit | 92ad6325cb891bb455487bfe90cc47d18aa6ec37 (patch) | |
tree | 433a7ef938fae69789216043f67eff9f9c6b0c68 /drivers/net/tun.c | |
parent | e0effb5fbd56a8b2b8917611cbf4fcd9aba92b8f (diff) | |
parent | c356dc4b540edd6c02b409dd8cf3208ba2804c38 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Minor SPDX change conflict.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tun.c')
-rw-r--r-- | drivers/net/tun.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index c452d6d831dd..d7c55e0fa8f4 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c | |||
@@ -1014,18 +1014,8 @@ static void tun_net_uninit(struct net_device *dev) | |||
1014 | /* Net device open. */ | 1014 | /* Net device open. */ |
1015 | static int tun_net_open(struct net_device *dev) | 1015 | static int tun_net_open(struct net_device *dev) |
1016 | { | 1016 | { |
1017 | struct tun_struct *tun = netdev_priv(dev); | ||
1018 | int i; | ||
1019 | |||
1020 | netif_tx_start_all_queues(dev); | 1017 | netif_tx_start_all_queues(dev); |
1021 | 1018 | ||
1022 | for (i = 0; i < tun->numqueues; i++) { | ||
1023 | struct tun_file *tfile; | ||
1024 | |||
1025 | tfile = rtnl_dereference(tun->tfiles[i]); | ||
1026 | tfile->socket.sk->sk_write_space(tfile->socket.sk); | ||
1027 | } | ||
1028 | |||
1029 | return 0; | 1019 | return 0; |
1030 | } | 1020 | } |
1031 | 1021 | ||
@@ -3634,6 +3624,7 @@ static int tun_device_event(struct notifier_block *unused, | |||
3634 | { | 3624 | { |
3635 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); | 3625 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
3636 | struct tun_struct *tun = netdev_priv(dev); | 3626 | struct tun_struct *tun = netdev_priv(dev); |
3627 | int i; | ||
3637 | 3628 | ||
3638 | if (dev->rtnl_link_ops != &tun_link_ops) | 3629 | if (dev->rtnl_link_ops != &tun_link_ops) |
3639 | return NOTIFY_DONE; | 3630 | return NOTIFY_DONE; |
@@ -3643,6 +3634,14 @@ static int tun_device_event(struct notifier_block *unused, | |||
3643 | if (tun_queue_resize(tun)) | 3634 | if (tun_queue_resize(tun)) |
3644 | return NOTIFY_BAD; | 3635 | return NOTIFY_BAD; |
3645 | break; | 3636 | break; |
3637 | case NETDEV_UP: | ||
3638 | for (i = 0; i < tun->numqueues; i++) { | ||
3639 | struct tun_file *tfile; | ||
3640 | |||
3641 | tfile = rtnl_dereference(tun->tfiles[i]); | ||
3642 | tfile->socket.sk->sk_write_space(tfile->socket.sk); | ||
3643 | } | ||
3644 | break; | ||
3646 | default: | 3645 | default: |
3647 | break; | 3646 | break; |
3648 | } | 3647 | } |