diff options
Diffstat (limited to 'net/netlink/af_netlink.c')
-rw-r--r-- | net/netlink/af_netlink.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 19e98007691c..a4957bf2ca60 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -428,7 +428,8 @@ static int __netlink_create(struct net *net, struct socket *sock, | |||
428 | return 0; | 428 | return 0; |
429 | } | 429 | } |
430 | 430 | ||
431 | static int netlink_create(struct net *net, struct socket *sock, int protocol) | 431 | static int netlink_create(struct net *net, struct socket *sock, int protocol, |
432 | int kern) | ||
432 | { | 433 | { |
433 | struct module *module = NULL; | 434 | struct module *module = NULL; |
434 | struct mutex *cb_mutex; | 435 | struct mutex *cb_mutex; |
@@ -497,7 +498,7 @@ static int netlink_release(struct socket *sock) | |||
497 | 498 | ||
498 | skb_queue_purge(&sk->sk_write_queue); | 499 | skb_queue_purge(&sk->sk_write_queue); |
499 | 500 | ||
500 | if (nlk->pid && !nlk->subscriptions) { | 501 | if (nlk->pid) { |
501 | struct netlink_notify n = { | 502 | struct netlink_notify n = { |
502 | .net = sock_net(sk), | 503 | .net = sock_net(sk), |
503 | .protocol = sk->sk_protocol, | 504 | .protocol = sk->sk_protocol, |
@@ -707,7 +708,7 @@ static int netlink_getname(struct socket *sock, struct sockaddr *addr, | |||
707 | { | 708 | { |
708 | struct sock *sk = sock->sk; | 709 | struct sock *sk = sock->sk; |
709 | struct netlink_sock *nlk = nlk_sk(sk); | 710 | struct netlink_sock *nlk = nlk_sk(sk); |
710 | struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr; | 711 | DECLARE_SOCKADDR(struct sockaddr_nl *, nladdr, addr); |
711 | 712 | ||
712 | nladdr->nl_family = AF_NETLINK; | 713 | nladdr->nl_family = AF_NETLINK; |
713 | nladdr->nl_pad = 0; | 714 | nladdr->nl_pad = 0; |
@@ -1091,7 +1092,7 @@ static inline int do_one_set_err(struct sock *sk, | |||
1091 | if (sk == p->exclude_sk) | 1092 | if (sk == p->exclude_sk) |
1092 | goto out; | 1093 | goto out; |
1093 | 1094 | ||
1094 | if (sock_net(sk) != sock_net(p->exclude_sk)) | 1095 | if (!net_eq(sock_net(sk), sock_net(p->exclude_sk))) |
1095 | goto out; | 1096 | goto out; |
1096 | 1097 | ||
1097 | if (nlk->pid == p->pid || p->group - 1 >= nlk->ngroups || | 1098 | if (nlk->pid == p->pid || p->group - 1 >= nlk->ngroups || |
@@ -2050,7 +2051,7 @@ static const struct proto_ops netlink_ops = { | |||
2050 | .sendpage = sock_no_sendpage, | 2051 | .sendpage = sock_no_sendpage, |
2051 | }; | 2052 | }; |
2052 | 2053 | ||
2053 | static struct net_proto_family netlink_family_ops = { | 2054 | static const struct net_proto_family netlink_family_ops = { |
2054 | .family = PF_NETLINK, | 2055 | .family = PF_NETLINK, |
2055 | .create = netlink_create, | 2056 | .create = netlink_create, |
2056 | .owner = THIS_MODULE, /* for consistency 8) */ | 2057 | .owner = THIS_MODULE, /* for consistency 8) */ |