diff options
Diffstat (limited to 'net/llc')
-rw-r--r-- | net/llc/af_llc.c | 7 | ||||
-rw-r--r-- | net/llc/llc_conn.c | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c index 6b8a103cf9e6..b48244156e75 100644 --- a/net/llc/af_llc.c +++ b/net/llc/af_llc.c | |||
@@ -150,14 +150,17 @@ static struct proto llc_proto = { | |||
150 | * socket type we have available. | 150 | * socket type we have available. |
151 | * Returns 0 upon success, negative upon failure. | 151 | * Returns 0 upon success, negative upon failure. |
152 | */ | 152 | */ |
153 | static int llc_ui_create(struct socket *sock, int protocol) | 153 | static int llc_ui_create(struct net *net, struct socket *sock, int protocol) |
154 | { | 154 | { |
155 | struct sock *sk; | 155 | struct sock *sk; |
156 | int rc = -ESOCKTNOSUPPORT; | 156 | int rc = -ESOCKTNOSUPPORT; |
157 | 157 | ||
158 | if (net != &init_net) | ||
159 | return -EAFNOSUPPORT; | ||
160 | |||
158 | if (likely(sock->type == SOCK_DGRAM || sock->type == SOCK_STREAM)) { | 161 | if (likely(sock->type == SOCK_DGRAM || sock->type == SOCK_STREAM)) { |
159 | rc = -ENOMEM; | 162 | rc = -ENOMEM; |
160 | sk = llc_sk_alloc(PF_LLC, GFP_KERNEL, &llc_proto); | 163 | sk = llc_sk_alloc(net, PF_LLC, GFP_KERNEL, &llc_proto); |
161 | if (sk) { | 164 | if (sk) { |
162 | rc = 0; | 165 | rc = 0; |
163 | llc_ui_sk_init(sock, sk); | 166 | llc_ui_sk_init(sock, sk); |
diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c index 3b8cfbe029a7..8ebc2769dfda 100644 --- a/net/llc/llc_conn.c +++ b/net/llc/llc_conn.c | |||
@@ -700,7 +700,7 @@ static struct sock *llc_create_incoming_sock(struct sock *sk, | |||
700 | struct llc_addr *saddr, | 700 | struct llc_addr *saddr, |
701 | struct llc_addr *daddr) | 701 | struct llc_addr *daddr) |
702 | { | 702 | { |
703 | struct sock *newsk = llc_sk_alloc(sk->sk_family, GFP_ATOMIC, | 703 | struct sock *newsk = llc_sk_alloc(sk->sk_net, sk->sk_family, GFP_ATOMIC, |
704 | sk->sk_prot); | 704 | sk->sk_prot); |
705 | struct llc_sock *newllc, *llc = llc_sk(sk); | 705 | struct llc_sock *newllc, *llc = llc_sk(sk); |
706 | 706 | ||
@@ -867,9 +867,9 @@ static void llc_sk_init(struct sock* sk) | |||
867 | * Allocates a LLC sock and initializes it. Returns the new LLC sock | 867 | * Allocates a LLC sock and initializes it. Returns the new LLC sock |
868 | * or %NULL if there's no memory available for one | 868 | * or %NULL if there's no memory available for one |
869 | */ | 869 | */ |
870 | struct sock *llc_sk_alloc(int family, gfp_t priority, struct proto *prot) | 870 | struct sock *llc_sk_alloc(struct net *net, int family, gfp_t priority, struct proto *prot) |
871 | { | 871 | { |
872 | struct sock *sk = sk_alloc(family, priority, prot, 1); | 872 | struct sock *sk = sk_alloc(net, family, priority, prot, 1); |
873 | 873 | ||
874 | if (!sk) | 874 | if (!sk) |
875 | goto out; | 875 | goto out; |