aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/udp_tunnel.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/udp_tunnel.c')
-rw-r--r--net/ipv4/udp_tunnel.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/net/ipv4/udp_tunnel.c b/net/ipv4/udp_tunnel.c
index 4e2837476967..933ea903f7b8 100644
--- a/net/ipv4/udp_tunnel.c
+++ b/net/ipv4/udp_tunnel.c
@@ -15,12 +15,10 @@ int udp_sock_create4(struct net *net, struct udp_port_cfg *cfg,
15 struct socket *sock = NULL; 15 struct socket *sock = NULL;
16 struct sockaddr_in udp_addr; 16 struct sockaddr_in udp_addr;
17 17
18 err = sock_create_kern(&init_net, AF_INET, SOCK_DGRAM, 0, &sock); 18 err = sock_create_kern(net, AF_INET, SOCK_DGRAM, 0, &sock);
19 if (err < 0) 19 if (err < 0)
20 goto error; 20 goto error;
21 21
22 sk_change_net(sock->sk, net);
23
24 udp_addr.sin_family = AF_INET; 22 udp_addr.sin_family = AF_INET;
25 udp_addr.sin_addr = cfg->local_ip; 23 udp_addr.sin_addr = cfg->local_ip;
26 udp_addr.sin_port = cfg->local_udp_port; 24 udp_addr.sin_port = cfg->local_udp_port;
@@ -47,7 +45,7 @@ int udp_sock_create4(struct net *net, struct udp_port_cfg *cfg,
47error: 45error:
48 if (sock) { 46 if (sock) {
49 kernel_sock_shutdown(sock, SHUT_RDWR); 47 kernel_sock_shutdown(sock, SHUT_RDWR);
50 sk_release_kernel(sock->sk); 48 sock_release(sock);
51 } 49 }
52 *sockp = NULL; 50 *sockp = NULL;
53 return err; 51 return err;
@@ -101,7 +99,7 @@ void udp_tunnel_sock_release(struct socket *sock)
101{ 99{
102 rcu_assign_sk_user_data(sock->sk, NULL); 100 rcu_assign_sk_user_data(sock->sk, NULL);
103 kernel_sock_shutdown(sock, SHUT_RDWR); 101 kernel_sock_shutdown(sock, SHUT_RDWR);
104 sk_release_kernel(sock->sk); 102 sock_release(sock);
105} 103}
106EXPORT_SYMBOL_GPL(udp_tunnel_sock_release); 104EXPORT_SYMBOL_GPL(udp_tunnel_sock_release);
107 105