diff options
Diffstat (limited to 'net/netrom')
-rw-r--r-- | net/netrom/af_netrom.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index 15c8a92bd719..e969d1bc765c 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c | |||
@@ -409,15 +409,18 @@ static struct proto nr_proto = { | |||
409 | .obj_size = sizeof(struct nr_sock), | 409 | .obj_size = sizeof(struct nr_sock), |
410 | }; | 410 | }; |
411 | 411 | ||
412 | static int nr_create(struct socket *sock, int protocol) | 412 | static int nr_create(struct net *net, struct socket *sock, int protocol) |
413 | { | 413 | { |
414 | struct sock *sk; | 414 | struct sock *sk; |
415 | struct nr_sock *nr; | 415 | struct nr_sock *nr; |
416 | 416 | ||
417 | if (net != &init_net) | ||
418 | return -EAFNOSUPPORT; | ||
419 | |||
417 | if (sock->type != SOCK_SEQPACKET || protocol != 0) | 420 | if (sock->type != SOCK_SEQPACKET || protocol != 0) |
418 | return -ESOCKTNOSUPPORT; | 421 | return -ESOCKTNOSUPPORT; |
419 | 422 | ||
420 | if ((sk = sk_alloc(PF_NETROM, GFP_ATOMIC, &nr_proto, 1)) == NULL) | 423 | if ((sk = sk_alloc(net, PF_NETROM, GFP_ATOMIC, &nr_proto, 1)) == NULL) |
421 | return -ENOMEM; | 424 | return -ENOMEM; |
422 | 425 | ||
423 | nr = nr_sk(sk); | 426 | nr = nr_sk(sk); |
@@ -459,7 +462,7 @@ static struct sock *nr_make_new(struct sock *osk) | |||
459 | if (osk->sk_type != SOCK_SEQPACKET) | 462 | if (osk->sk_type != SOCK_SEQPACKET) |
460 | return NULL; | 463 | return NULL; |
461 | 464 | ||
462 | if ((sk = sk_alloc(PF_NETROM, GFP_ATOMIC, osk->sk_prot, 1)) == NULL) | 465 | if ((sk = sk_alloc(osk->sk_net, PF_NETROM, GFP_ATOMIC, osk->sk_prot, 1)) == NULL) |
463 | return NULL; | 466 | return NULL; |
464 | 467 | ||
465 | nr = nr_sk(sk); | 468 | nr = nr_sk(sk); |