aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/af_inet6.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index b5f96372ad73..21931c86e95b 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -81,7 +81,7 @@ static __inline__ struct ipv6_pinfo *inet6_sk_generic(struct sock *sk)
81 return (struct ipv6_pinfo *)(((u8 *)sk) + offset); 81 return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
82} 82}
83 83
84static int inet6_create(struct socket *sock, int protocol) 84static int inet6_create(struct net *net, struct socket *sock, int protocol)
85{ 85{
86 struct inet_sock *inet; 86 struct inet_sock *inet;
87 struct ipv6_pinfo *np; 87 struct ipv6_pinfo *np;
@@ -94,6 +94,9 @@ static int inet6_create(struct socket *sock, int protocol)
94 int try_loading_module = 0; 94 int try_loading_module = 0;
95 int err; 95 int err;
96 96
97 if (net != &init_net)
98 return -EAFNOSUPPORT;
99
97 if (sock->type != SOCK_RAW && 100 if (sock->type != SOCK_RAW &&
98 sock->type != SOCK_DGRAM && 101 sock->type != SOCK_DGRAM &&
99 !inet_ehash_secret) 102 !inet_ehash_secret)
@@ -159,7 +162,7 @@ lookup_protocol:
159 BUG_TRAP(answer_prot->slab != NULL); 162 BUG_TRAP(answer_prot->slab != NULL);
160 163
161 err = -ENOBUFS; 164 err = -ENOBUFS;
162 sk = sk_alloc(PF_INET6, GFP_KERNEL, answer_prot, 1); 165 sk = sk_alloc(net, PF_INET6, GFP_KERNEL, answer_prot, 1);
163 if (sk == NULL) 166 if (sk == NULL)
164 goto out; 167 goto out;
165 168