mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
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" <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
eeb1bd5c40
commit
11aa9c28b4
59 changed files with 109 additions and 108 deletions
|
|
@ -1119,14 +1119,15 @@ static struct proto netlink_proto = {
|
|||
};
|
||||
|
||||
static int __netlink_create(struct net *net, struct socket *sock,
|
||||
struct mutex *cb_mutex, int protocol)
|
||||
struct mutex *cb_mutex, int protocol,
|
||||
int kern)
|
||||
{
|
||||
struct sock *sk;
|
||||
struct netlink_sock *nlk;
|
||||
|
||||
sock->ops = &netlink_ops;
|
||||
|
||||
sk = sk_alloc(net, PF_NETLINK, GFP_KERNEL, &netlink_proto);
|
||||
sk = sk_alloc(net, PF_NETLINK, GFP_KERNEL, &netlink_proto, kern);
|
||||
if (!sk)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
@ -1188,7 +1189,7 @@ static int netlink_create(struct net *net, struct socket *sock, int protocol,
|
|||
if (err < 0)
|
||||
goto out;
|
||||
|
||||
err = __netlink_create(net, sock, cb_mutex, protocol);
|
||||
err = __netlink_create(net, sock, cb_mutex, protocol, kern);
|
||||
if (err < 0)
|
||||
goto out_module;
|
||||
|
||||
|
|
@ -2515,14 +2516,12 @@ __netlink_kernel_create(struct net *net, int unit, struct module *module,
|
|||
|
||||
if (sock_create_lite(PF_NETLINK, SOCK_DGRAM, unit, &sock))
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* We have to just have a reference on the net from sk, but don't
|
||||
* get_net it. Besides, we cannot get and then put the net here.
|
||||
* So we create one inside init_net and the move it to net.
|
||||
*/
|
||||
|
||||
if (__netlink_create(&init_net, sock, cb_mutex, unit) < 0)
|
||||
if (__netlink_create(&init_net, sock, cb_mutex, unit, 0) < 0)
|
||||
goto out_sock_release_nosk;
|
||||
|
||||
sk = sock->sk;
|
||||
|
|
|
|||
Loading…
Reference in a new issue