diff options
Diffstat (limited to 'net/netlink/af_netlink.c')
-rw-r--r-- | net/netlink/af_netlink.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 383dd4e82ee1..f6ee9b47428b 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
9 | * as published by the Free Software Foundation; either version | 9 | * as published by the Free Software Foundation; either version |
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * Tue Jun 26 14:36:48 MEST 2001 Herbert "herp" Rosmanith | 12 | * Tue Jun 26 14:36:48 MEST 2001 Herbert "herp" Rosmanith |
13 | * added netlink_proto_exit | 13 | * added netlink_proto_exit |
14 | * Tue Jan 22 18:32:44 BRST 2002 Arnaldo C. de Melo <acme@conectiva.com.br> | 14 | * Tue Jan 22 18:32:44 BRST 2002 Arnaldo C. de Melo <acme@conectiva.com.br> |
@@ -470,7 +470,7 @@ static int netlink_release(struct socket *sock) | |||
470 | }; | 470 | }; |
471 | atomic_notifier_call_chain(&netlink_chain, | 471 | atomic_notifier_call_chain(&netlink_chain, |
472 | NETLINK_URELEASE, &n); | 472 | NETLINK_URELEASE, &n); |
473 | } | 473 | } |
474 | 474 | ||
475 | module_put(nlk->module); | 475 | module_put(nlk->module); |
476 | 476 | ||
@@ -528,11 +528,11 @@ retry: | |||
528 | return err; | 528 | return err; |
529 | } | 529 | } |
530 | 530 | ||
531 | static inline int netlink_capable(struct socket *sock, unsigned int flag) | 531 | static inline int netlink_capable(struct socket *sock, unsigned int flag) |
532 | { | 532 | { |
533 | return (nl_table[sock->sk->sk_protocol].nl_nonroot & flag) || | 533 | return (nl_table[sock->sk->sk_protocol].nl_nonroot & flag) || |
534 | capable(CAP_NET_ADMIN); | 534 | capable(CAP_NET_ADMIN); |
535 | } | 535 | } |
536 | 536 | ||
537 | static void | 537 | static void |
538 | netlink_update_subscriptions(struct sock *sk, unsigned int subscriptions) | 538 | netlink_update_subscriptions(struct sock *sk, unsigned int subscriptions) |
@@ -574,7 +574,7 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr, int addr_len | |||
574 | struct netlink_sock *nlk = nlk_sk(sk); | 574 | struct netlink_sock *nlk = nlk_sk(sk); |
575 | struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr; | 575 | struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr; |
576 | int err; | 576 | int err; |
577 | 577 | ||
578 | if (nladdr->nl_family != AF_NETLINK) | 578 | if (nladdr->nl_family != AF_NETLINK) |
579 | return -EINVAL; | 579 | return -EINVAL; |
580 | 580 | ||
@@ -605,9 +605,9 @@ static int netlink_bind(struct socket *sock, struct sockaddr *addr, int addr_len | |||
605 | 605 | ||
606 | netlink_table_grab(); | 606 | netlink_table_grab(); |
607 | netlink_update_subscriptions(sk, nlk->subscriptions + | 607 | netlink_update_subscriptions(sk, nlk->subscriptions + |
608 | hweight32(nladdr->nl_groups) - | 608 | hweight32(nladdr->nl_groups) - |
609 | hweight32(nlk->groups[0])); | 609 | hweight32(nlk->groups[0])); |
610 | nlk->groups[0] = (nlk->groups[0] & ~0xffffffffUL) | nladdr->nl_groups; | 610 | nlk->groups[0] = (nlk->groups[0] & ~0xffffffffUL) | nladdr->nl_groups; |
611 | netlink_update_listeners(sk); | 611 | netlink_update_listeners(sk); |
612 | netlink_table_ungrab(); | 612 | netlink_table_ungrab(); |
613 | 613 | ||
@@ -652,7 +652,7 @@ static int netlink_getname(struct socket *sock, struct sockaddr *addr, int *addr | |||
652 | struct sock *sk = sock->sk; | 652 | struct sock *sk = sock->sk; |
653 | struct netlink_sock *nlk = nlk_sk(sk); | 653 | struct netlink_sock *nlk = nlk_sk(sk); |
654 | struct sockaddr_nl *nladdr=(struct sockaddr_nl *)addr; | 654 | struct sockaddr_nl *nladdr=(struct sockaddr_nl *)addr; |
655 | 655 | ||
656 | nladdr->nl_family = AF_NETLINK; | 656 | nladdr->nl_family = AF_NETLINK; |
657 | nladdr->nl_pad = 0; | 657 | nladdr->nl_pad = 0; |
658 | *addr_len = sizeof(*nladdr); | 658 | *addr_len = sizeof(*nladdr); |
@@ -999,7 +999,7 @@ void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code) | |||
999 | } | 999 | } |
1000 | 1000 | ||
1001 | static int netlink_setsockopt(struct socket *sock, int level, int optname, | 1001 | static int netlink_setsockopt(struct socket *sock, int level, int optname, |
1002 | char __user *optval, int optlen) | 1002 | char __user *optval, int optlen) |
1003 | { | 1003 | { |
1004 | struct sock *sk = sock->sk; | 1004 | struct sock *sk = sock->sk; |
1005 | struct netlink_sock *nlk = nlk_sk(sk); | 1005 | struct netlink_sock *nlk = nlk_sk(sk); |
@@ -1054,7 +1054,7 @@ static int netlink_setsockopt(struct socket *sock, int level, int optname, | |||
1054 | } | 1054 | } |
1055 | 1055 | ||
1056 | static int netlink_getsockopt(struct socket *sock, int level, int optname, | 1056 | static int netlink_getsockopt(struct socket *sock, int level, int optname, |
1057 | char __user *optval, int __user *optlen) | 1057 | char __user *optval, int __user *optlen) |
1058 | { | 1058 | { |
1059 | struct sock *sk = sock->sk; | 1059 | struct sock *sk = sock->sk; |
1060 | struct netlink_sock *nlk = nlk_sk(sk); | 1060 | struct netlink_sock *nlk = nlk_sk(sk); |
@@ -1257,15 +1257,15 @@ static void netlink_data_ready(struct sock *sk, int len) | |||
1257 | } | 1257 | } |
1258 | 1258 | ||
1259 | /* | 1259 | /* |
1260 | * We export these functions to other modules. They provide a | 1260 | * We export these functions to other modules. They provide a |
1261 | * complete set of kernel non-blocking support for message | 1261 | * complete set of kernel non-blocking support for message |
1262 | * queueing. | 1262 | * queueing. |
1263 | */ | 1263 | */ |
1264 | 1264 | ||
1265 | struct sock * | 1265 | struct sock * |
1266 | netlink_kernel_create(int unit, unsigned int groups, | 1266 | netlink_kernel_create(int unit, unsigned int groups, |
1267 | void (*input)(struct sock *sk, int len), | 1267 | void (*input)(struct sock *sk, int len), |
1268 | struct module *module) | 1268 | struct module *module) |
1269 | { | 1269 | { |
1270 | struct socket *sock; | 1270 | struct socket *sock; |
1271 | struct sock *sk; | 1271 | struct sock *sk; |
@@ -1317,10 +1317,10 @@ out_sock_release: | |||
1317 | } | 1317 | } |
1318 | 1318 | ||
1319 | void netlink_set_nonroot(int protocol, unsigned int flags) | 1319 | void netlink_set_nonroot(int protocol, unsigned int flags) |
1320 | { | 1320 | { |
1321 | if ((unsigned int)protocol < MAX_LINKS) | 1321 | if ((unsigned int)protocol < MAX_LINKS) |
1322 | nl_table[protocol].nl_nonroot = flags; | 1322 | nl_table[protocol].nl_nonroot = flags; |
1323 | } | 1323 | } |
1324 | 1324 | ||
1325 | static void netlink_destroy_callback(struct netlink_callback *cb) | 1325 | static void netlink_destroy_callback(struct netlink_callback *cb) |
1326 | { | 1326 | { |
@@ -1341,7 +1341,7 @@ static int netlink_dump(struct sock *sk) | |||
1341 | struct sk_buff *skb; | 1341 | struct sk_buff *skb; |
1342 | struct nlmsghdr *nlh; | 1342 | struct nlmsghdr *nlh; |
1343 | int len, err = -ENOBUFS; | 1343 | int len, err = -ENOBUFS; |
1344 | 1344 | ||
1345 | skb = sock_rmalloc(sk, NLMSG_GOODSIZE, 0, GFP_KERNEL); | 1345 | skb = sock_rmalloc(sk, NLMSG_GOODSIZE, 0, GFP_KERNEL); |
1346 | if (!skb) | 1346 | if (!skb) |
1347 | goto errout; | 1347 | goto errout; |
@@ -1626,7 +1626,7 @@ static void *netlink_seq_next(struct seq_file *seq, void *v, loff_t *pos) | |||
1626 | 1626 | ||
1627 | if (v == SEQ_START_TOKEN) | 1627 | if (v == SEQ_START_TOKEN) |
1628 | return netlink_seq_socket_idx(seq, 0); | 1628 | return netlink_seq_socket_idx(seq, 0); |
1629 | 1629 | ||
1630 | s = sk_next(v); | 1630 | s = sk_next(v); |
1631 | if (s) | 1631 | if (s) |
1632 | return s; | 1632 | return s; |
@@ -1732,7 +1732,7 @@ int netlink_unregister_notifier(struct notifier_block *nb) | |||
1732 | { | 1732 | { |
1733 | return atomic_notifier_chain_unregister(&netlink_chain, nb); | 1733 | return atomic_notifier_chain_unregister(&netlink_chain, nb); |
1734 | } | 1734 | } |
1735 | 1735 | ||
1736 | static const struct proto_ops netlink_ops = { | 1736 | static const struct proto_ops netlink_ops = { |
1737 | .family = PF_NETLINK, | 1737 | .family = PF_NETLINK, |
1738 | .owner = THIS_MODULE, | 1738 | .owner = THIS_MODULE, |
@@ -1808,7 +1808,7 @@ static int __init netlink_proto_init(void) | |||
1808 | #ifdef CONFIG_PROC_FS | 1808 | #ifdef CONFIG_PROC_FS |
1809 | proc_net_fops_create("netlink", 0, &netlink_seq_fops); | 1809 | proc_net_fops_create("netlink", 0, &netlink_seq_fops); |
1810 | #endif | 1810 | #endif |
1811 | /* The netlink device handler may be needed early. */ | 1811 | /* The netlink device handler may be needed early. */ |
1812 | rtnetlink_init(); | 1812 | rtnetlink_init(); |
1813 | out: | 1813 | out: |
1814 | return err; | 1814 | return err; |