aboutsummaryrefslogtreecommitdiffstats
path: root/net/ax25/af_ax25.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ax25/af_ax25.c')
-rw-r--r--net/ax25/af_ax25.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 1d71f85680b8..def6c42ad165 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -780,11 +780,14 @@ static struct proto ax25_proto = {
780 .obj_size = sizeof(struct sock), 780 .obj_size = sizeof(struct sock),
781}; 781};
782 782
783static int ax25_create(struct socket *sock, int protocol) 783static int ax25_create(struct net *net, struct socket *sock, int protocol)
784{ 784{
785 struct sock *sk; 785 struct sock *sk;
786 ax25_cb *ax25; 786 ax25_cb *ax25;
787 787
788 if (net != &init_net)
789 return -EAFNOSUPPORT;
790
788 switch (sock->type) { 791 switch (sock->type) {
789 case SOCK_DGRAM: 792 case SOCK_DGRAM:
790 if (protocol == 0 || protocol == PF_AX25) 793 if (protocol == 0 || protocol == PF_AX25)
@@ -830,7 +833,7 @@ static int ax25_create(struct socket *sock, int protocol)
830 return -ESOCKTNOSUPPORT; 833 return -ESOCKTNOSUPPORT;
831 } 834 }
832 835
833 if ((sk = sk_alloc(PF_AX25, GFP_ATOMIC, &ax25_proto, 1)) == NULL) 836 if ((sk = sk_alloc(net, PF_AX25, GFP_ATOMIC, &ax25_proto, 1)) == NULL)
834 return -ENOMEM; 837 return -ENOMEM;
835 838
836 ax25 = sk->sk_protinfo = ax25_create_cb(); 839 ax25 = sk->sk_protinfo = ax25_create_cb();
@@ -855,7 +858,7 @@ struct sock *ax25_make_new(struct sock *osk, struct ax25_dev *ax25_dev)
855 struct sock *sk; 858 struct sock *sk;
856 ax25_cb *ax25, *oax25; 859 ax25_cb *ax25, *oax25;
857 860
858 if ((sk = sk_alloc(PF_AX25, GFP_ATOMIC, osk->sk_prot, 1)) == NULL) 861 if ((sk = sk_alloc(osk->sk_net, PF_AX25, GFP_ATOMIC, osk->sk_prot, 1)) == NULL)
859 return NULL; 862 return NULL;
860 863
861 if ((ax25 = ax25_create_cb()) == NULL) { 864 if ((ax25 = ax25_create_cb()) == NULL) {