diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2015-05-08 22:09:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-05-11 10:50:17 -0400 |
commit | 11aa9c28b4209242a9de0a661a7b3405adb568a0 (patch) | |
tree | d0dda021d89c17c54d54d227269f937d2d73b542 /net/nfc | |
parent | eeb1bd5c40edb0e2fd925c8535e2fdebdbc5cef2 (diff) |
net: Pass kern from net_proto_family.create to sk_alloc
In preparation for changing how struct net is refcounted
on kernel sockets pass the knowledge that we are creating
a kernel socket from sock_create_kern through to sk_alloc.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/af_nfc.c | 2 | ||||
-rw-r--r-- | net/nfc/llcp.h | 2 | ||||
-rw-r--r-- | net/nfc/llcp_core.c | 2 | ||||
-rw-r--r-- | net/nfc/llcp_sock.c | 8 | ||||
-rw-r--r-- | net/nfc/nfc.h | 2 | ||||
-rw-r--r-- | net/nfc/rawsock.c | 4 |
6 files changed, 10 insertions, 10 deletions
diff --git a/net/nfc/af_nfc.c b/net/nfc/af_nfc.c index 2277276f52bc..54e40fa47822 100644 --- a/net/nfc/af_nfc.c +++ b/net/nfc/af_nfc.c | |||
@@ -40,7 +40,7 @@ static int nfc_sock_create(struct net *net, struct socket *sock, int proto, | |||
40 | 40 | ||
41 | read_lock(&proto_tab_lock); | 41 | read_lock(&proto_tab_lock); |
42 | if (proto_tab[proto] && try_module_get(proto_tab[proto]->owner)) { | 42 | if (proto_tab[proto] && try_module_get(proto_tab[proto]->owner)) { |
43 | rc = proto_tab[proto]->create(net, sock, proto_tab[proto]); | 43 | rc = proto_tab[proto]->create(net, sock, proto_tab[proto], kern); |
44 | module_put(proto_tab[proto]->owner); | 44 | module_put(proto_tab[proto]->owner); |
45 | } | 45 | } |
46 | read_unlock(&proto_tab_lock); | 46 | read_unlock(&proto_tab_lock); |
diff --git a/net/nfc/llcp.h b/net/nfc/llcp.h index de1789e3cc82..1f68724d44d3 100644 --- a/net/nfc/llcp.h +++ b/net/nfc/llcp.h | |||
@@ -225,7 +225,7 @@ void nfc_llcp_send_to_raw_sock(struct nfc_llcp_local *local, | |||
225 | struct sk_buff *skb, u8 direction); | 225 | struct sk_buff *skb, u8 direction); |
226 | 226 | ||
227 | /* Sock API */ | 227 | /* Sock API */ |
228 | struct sock *nfc_llcp_sock_alloc(struct socket *sock, int type, gfp_t gfp); | 228 | struct sock *nfc_llcp_sock_alloc(struct socket *sock, int type, gfp_t gfp, int kern); |
229 | void nfc_llcp_sock_free(struct nfc_llcp_sock *sock); | 229 | void nfc_llcp_sock_free(struct nfc_llcp_sock *sock); |
230 | void nfc_llcp_accept_unlink(struct sock *sk); | 230 | void nfc_llcp_accept_unlink(struct sock *sk); |
231 | void nfc_llcp_accept_enqueue(struct sock *parent, struct sock *sk); | 231 | void nfc_llcp_accept_enqueue(struct sock *parent, struct sock *sk); |
diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c index b18f07ccb504..98876274a1ee 100644 --- a/net/nfc/llcp_core.c +++ b/net/nfc/llcp_core.c | |||
@@ -934,7 +934,7 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local, | |||
934 | sock->ssap = ssap; | 934 | sock->ssap = ssap; |
935 | } | 935 | } |
936 | 936 | ||
937 | new_sk = nfc_llcp_sock_alloc(NULL, parent->sk_type, GFP_ATOMIC); | 937 | new_sk = nfc_llcp_sock_alloc(NULL, parent->sk_type, GFP_ATOMIC, 0); |
938 | if (new_sk == NULL) { | 938 | if (new_sk == NULL) { |
939 | reason = LLCP_DM_REJ; | 939 | reason = LLCP_DM_REJ; |
940 | release_sock(&sock->sk); | 940 | release_sock(&sock->sk); |
diff --git a/net/nfc/llcp_sock.c b/net/nfc/llcp_sock.c index 9578bd6a4f3e..b7de0da46acd 100644 --- a/net/nfc/llcp_sock.c +++ b/net/nfc/llcp_sock.c | |||
@@ -942,12 +942,12 @@ static void llcp_sock_destruct(struct sock *sk) | |||
942 | } | 942 | } |
943 | } | 943 | } |
944 | 944 | ||
945 | struct sock *nfc_llcp_sock_alloc(struct socket *sock, int type, gfp_t gfp) | 945 | struct sock *nfc_llcp_sock_alloc(struct socket *sock, int type, gfp_t gfp, int kern) |
946 | { | 946 | { |
947 | struct sock *sk; | 947 | struct sock *sk; |
948 | struct nfc_llcp_sock *llcp_sock; | 948 | struct nfc_llcp_sock *llcp_sock; |
949 | 949 | ||
950 | sk = sk_alloc(&init_net, PF_NFC, gfp, &llcp_sock_proto); | 950 | sk = sk_alloc(&init_net, PF_NFC, gfp, &llcp_sock_proto, kern); |
951 | if (!sk) | 951 | if (!sk) |
952 | return NULL; | 952 | return NULL; |
953 | 953 | ||
@@ -993,7 +993,7 @@ void nfc_llcp_sock_free(struct nfc_llcp_sock *sock) | |||
993 | } | 993 | } |
994 | 994 | ||
995 | static int llcp_sock_create(struct net *net, struct socket *sock, | 995 | static int llcp_sock_create(struct net *net, struct socket *sock, |
996 | const struct nfc_protocol *nfc_proto) | 996 | const struct nfc_protocol *nfc_proto, int kern) |
997 | { | 997 | { |
998 | struct sock *sk; | 998 | struct sock *sk; |
999 | 999 | ||
@@ -1009,7 +1009,7 @@ static int llcp_sock_create(struct net *net, struct socket *sock, | |||
1009 | else | 1009 | else |
1010 | sock->ops = &llcp_sock_ops; | 1010 | sock->ops = &llcp_sock_ops; |
1011 | 1011 | ||
1012 | sk = nfc_llcp_sock_alloc(sock, sock->type, GFP_ATOMIC); | 1012 | sk = nfc_llcp_sock_alloc(sock, sock->type, GFP_ATOMIC, kern); |
1013 | if (sk == NULL) | 1013 | if (sk == NULL) |
1014 | return -ENOMEM; | 1014 | return -ENOMEM; |
1015 | 1015 | ||
diff --git a/net/nfc/nfc.h b/net/nfc/nfc.h index a8ce80b47720..5c93e8412a26 100644 --- a/net/nfc/nfc.h +++ b/net/nfc/nfc.h | |||
@@ -30,7 +30,7 @@ struct nfc_protocol { | |||
30 | struct proto *proto; | 30 | struct proto *proto; |
31 | struct module *owner; | 31 | struct module *owner; |
32 | int (*create)(struct net *net, struct socket *sock, | 32 | int (*create)(struct net *net, struct socket *sock, |
33 | const struct nfc_protocol *nfc_proto); | 33 | const struct nfc_protocol *nfc_proto, int kern); |
34 | }; | 34 | }; |
35 | 35 | ||
36 | struct nfc_rawsock { | 36 | struct nfc_rawsock { |
diff --git a/net/nfc/rawsock.c b/net/nfc/rawsock.c index 82b4e8024778..e9a91488fe3d 100644 --- a/net/nfc/rawsock.c +++ b/net/nfc/rawsock.c | |||
@@ -334,7 +334,7 @@ static void rawsock_destruct(struct sock *sk) | |||
334 | } | 334 | } |
335 | 335 | ||
336 | static int rawsock_create(struct net *net, struct socket *sock, | 336 | static int rawsock_create(struct net *net, struct socket *sock, |
337 | const struct nfc_protocol *nfc_proto) | 337 | const struct nfc_protocol *nfc_proto, int kern) |
338 | { | 338 | { |
339 | struct sock *sk; | 339 | struct sock *sk; |
340 | 340 | ||
@@ -348,7 +348,7 @@ static int rawsock_create(struct net *net, struct socket *sock, | |||
348 | else | 348 | else |
349 | sock->ops = &rawsock_ops; | 349 | sock->ops = &rawsock_ops; |
350 | 350 | ||
351 | sk = sk_alloc(net, PF_NFC, GFP_ATOMIC, nfc_proto->proto); | 351 | sk = sk_alloc(net, PF_NFC, GFP_ATOMIC, nfc_proto->proto, kern); |
352 | if (!sk) | 352 | if (!sk) |
353 | return -ENOMEM; | 353 | return -ENOMEM; |
354 | 354 | ||