diff options
| -rw-r--r-- | drivers/w1/w1_netlink.c | 2 | ||||
| -rw-r--r-- | include/linux/netfilter/nfnetlink.h | 23 | ||||
| -rw-r--r-- | include/linux/netfilter_decnet.h | 14 | ||||
| -rw-r--r-- | include/linux/rtnetlink.h | 42 | ||||
| -rw-r--r-- | include/linux/selinux_netlink.h | 13 | ||||
| -rw-r--r-- | include/linux/xfrm.h | 18 | ||||
| -rw-r--r-- | lib/kobject_uevent.c | 2 | ||||
| -rw-r--r-- | net/bridge/netfilter/ebt_ulog.c | 4 | ||||
| -rw-r--r-- | net/core/neighbour.c | 8 | ||||
| -rw-r--r-- | net/core/rtnetlink.c | 6 | ||||
| -rw-r--r-- | net/core/wireless.c | 4 | ||||
| -rw-r--r-- | net/decnet/dn_dev.c | 8 | ||||
| -rw-r--r-- | net/decnet/dn_table.c | 4 | ||||
| -rw-r--r-- | net/decnet/netfilter/dn_rtmsg.c | 6 | ||||
| -rw-r--r-- | net/ipv4/devinet.c | 7 | ||||
| -rw-r--r-- | net/ipv4/fib_frontend.c | 2 | ||||
| -rw-r--r-- | net/ipv4/fib_semantics.c | 4 | ||||
| -rw-r--r-- | net/ipv4/netfilter/ip_conntrack_netlink.c | 12 | ||||
| -rw-r--r-- | net/ipv4/netfilter/ipt_ULOG.c | 8 | ||||
| -rw-r--r-- | net/ipv6/addrconf.c | 24 | ||||
| -rw-r--r-- | net/ipv6/route.c | 8 | ||||
| -rw-r--r-- | net/netfilter/nfnetlink.c | 2 | ||||
| -rw-r--r-- | net/sched/act_api.c | 8 | ||||
| -rw-r--r-- | net/sched/cls_api.c | 2 | ||||
| -rw-r--r-- | net/sched/sch_api.c | 4 | ||||
| -rw-r--r-- | net/xfrm/xfrm_user.c | 35 | ||||
| -rw-r--r-- | security/selinux/netlink.c | 4 |
27 files changed, 183 insertions, 91 deletions
diff --git a/drivers/w1/w1_netlink.c b/drivers/w1/w1_netlink.c index 2a82fb055c70..e7b774423dd6 100644 --- a/drivers/w1/w1_netlink.c +++ b/drivers/w1/w1_netlink.c | |||
| @@ -51,7 +51,7 @@ void w1_netlink_send(struct w1_master *dev, struct w1_netlink_msg *msg) | |||
| 51 | 51 | ||
| 52 | memcpy(data, msg, sizeof(struct w1_netlink_msg)); | 52 | memcpy(data, msg, sizeof(struct w1_netlink_msg)); |
| 53 | 53 | ||
| 54 | NETLINK_CB(skb).dst_groups = dev->groups; | 54 | NETLINK_CB(skb).dst_group = dev->groups; |
| 55 | netlink_broadcast(dev->nls, skb, 0, dev->groups, GFP_ATOMIC); | 55 | netlink_broadcast(dev->nls, skb, 0, dev->groups, GFP_ATOMIC); |
| 56 | 56 | ||
| 57 | nlmsg_failure: | 57 | nlmsg_failure: |
diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h index b0feb2374079..1d5b10ae2399 100644 --- a/include/linux/netfilter/nfnetlink.h +++ b/include/linux/netfilter/nfnetlink.h | |||
| @@ -2,13 +2,34 @@ | |||
| 2 | #define _NFNETLINK_H | 2 | #define _NFNETLINK_H |
| 3 | #include <linux/types.h> | 3 | #include <linux/types.h> |
| 4 | 4 | ||
| 5 | /* nfnetlink groups: Up to 32 maximum */ | 5 | #ifndef __KERNEL__ |
| 6 | /* nfnetlink groups: Up to 32 maximum - backwards compatibility for userspace */ | ||
| 6 | #define NF_NETLINK_CONNTRACK_NEW 0x00000001 | 7 | #define NF_NETLINK_CONNTRACK_NEW 0x00000001 |
| 7 | #define NF_NETLINK_CONNTRACK_UPDATE 0x00000002 | 8 | #define NF_NETLINK_CONNTRACK_UPDATE 0x00000002 |
| 8 | #define NF_NETLINK_CONNTRACK_DESTROY 0x00000004 | 9 | #define NF_NETLINK_CONNTRACK_DESTROY 0x00000004 |
| 9 | #define NF_NETLINK_CONNTRACK_EXP_NEW 0x00000008 | 10 | #define NF_NETLINK_CONNTRACK_EXP_NEW 0x00000008 |
| 10 | #define NF_NETLINK_CONNTRACK_EXP_UPDATE 0x00000010 | 11 | #define NF_NETLINK_CONNTRACK_EXP_UPDATE 0x00000010 |
| 11 | #define NF_NETLINK_CONNTRACK_EXP_DESTROY 0x00000020 | 12 | #define NF_NETLINK_CONNTRACK_EXP_DESTROY 0x00000020 |
| 13 | #endif | ||
| 14 | |||
| 15 | enum nfnetlink_groups { | ||
| 16 | NFNLGRP_NONE, | ||
| 17 | #define NFNLGRP_NONE NFNLGRP_NONE | ||
| 18 | NFNLGRP_CONNTRACK_NEW, | ||
| 19 | #define NFNLGRP_CONNTRACK_NEW NFNLGRP_CONNTRACK_NEW | ||
| 20 | NFNLGRP_CONNTRACK_UPDATE, | ||
| 21 | #define NFNLGRP_CONNTRACK_UPDATE NFNLGRP_CONNTRACK_UPDATE | ||
| 22 | NFNLGRP_CONNTRACK_DESTROY, | ||
| 23 | #define NFNLGRP_CONNTRACK_DESTROY NFNLGRP_CONNTRACK_DESTROY | ||
| 24 | NFNLGRP_CONNTRACK_EXP_NEW, | ||
| 25 | #define NFNLGRP_CONNTRACK_EXP_NEW NFNLGRP_CONNTRACK_EXP_NEW | ||
| 26 | NFNLGRP_CONNTRACK_EXP_UPDATE, | ||
| 27 | #define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE | ||
| 28 | NFNLGRP_CONNTRACK_EXP_DESTROY, | ||
| 29 | #define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY | ||
| 30 | __NFNLGRP_MAX, | ||
| 31 | }; | ||
| 32 | #define NFNLGRP_MAX (__NFNLGRP_MAX - 1) | ||
| 12 | 33 | ||
| 13 | /* Generic structure for encapsulation optional netfilter information. | 34 | /* Generic structure for encapsulation optional netfilter information. |
| 14 | * It is reminiscent of sockaddr, but with sa_family replaced | 35 | * It is reminiscent of sockaddr, but with sa_family replaced |
diff --git a/include/linux/netfilter_decnet.h b/include/linux/netfilter_decnet.h index 018979484150..6f425369ee29 100644 --- a/include/linux/netfilter_decnet.h +++ b/include/linux/netfilter_decnet.h | |||
| @@ -56,7 +56,21 @@ struct nf_dn_rtmsg { | |||
| 56 | 56 | ||
| 57 | #define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg))) | 57 | #define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg))) |
| 58 | 58 | ||
| 59 | #ifndef __KERNEL__ | ||
| 60 | /* backwards compatibility for userspace */ | ||
| 59 | #define DNRMG_L1_GROUP 0x01 | 61 | #define DNRMG_L1_GROUP 0x01 |
| 60 | #define DNRMG_L2_GROUP 0x02 | 62 | #define DNRMG_L2_GROUP 0x02 |
| 63 | #endif | ||
| 64 | |||
| 65 | enum { | ||
| 66 | DNRNG_NLGRP_NONE, | ||
| 67 | #define DNRNG_NLGRP_NONE DNRNG_NLGRP_NONE | ||
| 68 | DNRNG_NLGRP_L1, | ||
| 69 | #define DNRNG_NLGRP_L1 DNRNG_NLGRP_L1 | ||
| 70 | DNRNG_NLGRP_L2, | ||
| 71 | #define DNRNG_NLGRP_L2 DNRNG_NLGRP_L2 | ||
| 72 | __DNRNG_NLGRP_MAX | ||
| 73 | }; | ||
| 74 | #define DNRNG_NLGRP_MAX (__DNRNG_NLGRP_MAX - 1) | ||
| 61 | 75 | ||
| 62 | #endif /*__LINUX_DECNET_NETFILTER_H*/ | 76 | #endif /*__LINUX_DECNET_NETFILTER_H*/ |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 657c05ab8f9e..c231e9a08f0b 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
| @@ -826,9 +826,8 @@ enum | |||
| 826 | #define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) | 826 | #define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg)))) |
| 827 | #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) | 827 | #define TCA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcmsg)) |
| 828 | 828 | ||
| 829 | 829 | #ifndef __KERNEL__ | |
| 830 | /* RTnetlink multicast groups */ | 830 | /* RTnetlink multicast groups - backwards compatibility for userspace */ |
| 831 | |||
| 832 | #define RTMGRP_LINK 1 | 831 | #define RTMGRP_LINK 1 |
| 833 | #define RTMGRP_NOTIFY 2 | 832 | #define RTMGRP_NOTIFY 2 |
| 834 | #define RTMGRP_NEIGH 4 | 833 | #define RTMGRP_NEIGH 4 |
| @@ -847,6 +846,43 @@ enum | |||
| 847 | #define RTMGRP_DECnet_ROUTE 0x4000 | 846 | #define RTMGRP_DECnet_ROUTE 0x4000 |
| 848 | 847 | ||
| 849 | #define RTMGRP_IPV6_PREFIX 0x20000 | 848 | #define RTMGRP_IPV6_PREFIX 0x20000 |
| 849 | #endif | ||
| 850 | |||
| 851 | /* RTnetlink multicast groups */ | ||
| 852 | enum rtnetlink_groups { | ||
| 853 | RTNLGRP_NONE, | ||
| 854 | #define RTNLGRP_NONE RTNLGRP_NONE | ||
| 855 | RTNLGRP_LINK, | ||
| 856 | #define RTNLGRP_LINK RTNLGRP_LINK | ||
| 857 | RTNLGRP_NOTIFY, | ||
| 858 | #define RTNLGRP_NOTIFY RTNLGRP_NOTIFY | ||
| 859 | RTNLGRP_NEIGH, | ||
| 860 | #define RTNLGRP_NEIGH RTNLGRP_NEIGH | ||
| 861 | RTNLGRP_TC, | ||
| 862 | #define RTNLGRP_TC RTNLGRP_TC | ||
| 863 | RTNLGRP_IPV4_IFADDR, | ||
| 864 | #define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR | ||
| 865 | RTNLGRP_IPV4_MROUTE, | ||
| 866 | #define RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_MROUTE | ||
| 867 | RTNLGRP_IPV4_ROUTE, | ||
| 868 | #define RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_ROUTE | ||
| 869 | RTNLGRP_IPV6_IFADDR, | ||
| 870 | #define RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_IFADDR | ||
| 871 | RTNLGRP_IPV6_MROUTE, | ||
| 872 | #define RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_MROUTE | ||
| 873 | RTNLGRP_IPV6_ROUTE, | ||
| 874 | #define RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_ROUTE | ||
| 875 | RTNLGRP_IPV6_IFINFO, | ||
| 876 | #define RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_IFINFO | ||
| 877 | RTNLGRP_DECnet_IFADDR, | ||
| 878 | #define RTNLGRP_DECnet_IFADDR RTNLGRP_DECnet_IFADDR | ||
| 879 | RTNLGRP_DECnet_ROUTE, | ||
| 880 | #define RTNLGRP_DECnet_ROUTE RTNLGRP_DECnet_ROUTE | ||
| 881 | RTNLGRP_IPV6_PREFIX, | ||
| 882 | #define RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_PREFIX | ||
| 883 | __RTNLGRP_MAX | ||
| 884 | }; | ||
| 885 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) | ||
| 850 | 886 | ||
| 851 | /* TC action piece */ | 887 | /* TC action piece */ |
| 852 | struct tcamsg | 888 | struct tcamsg |
diff --git a/include/linux/selinux_netlink.h b/include/linux/selinux_netlink.h index 957e6ebca4e6..bbf489decd84 100644 --- a/include/linux/selinux_netlink.h +++ b/include/linux/selinux_netlink.h | |||
| @@ -20,10 +20,21 @@ enum { | |||
| 20 | SELNL_MSG_MAX | 20 | SELNL_MSG_MAX |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | /* Multicast groups */ | 23 | #ifndef __KERNEL__ |
| 24 | /* Multicast groups - backwards compatiblility for userspace */ | ||
| 24 | #define SELNL_GRP_NONE 0x00000000 | 25 | #define SELNL_GRP_NONE 0x00000000 |
| 25 | #define SELNL_GRP_AVC 0x00000001 /* AVC notifications */ | 26 | #define SELNL_GRP_AVC 0x00000001 /* AVC notifications */ |
| 26 | #define SELNL_GRP_ALL 0xffffffff | 27 | #define SELNL_GRP_ALL 0xffffffff |
| 28 | #endif | ||
| 29 | |||
| 30 | enum selinux_nlgroups { | ||
| 31 | SELNLGRP_NONE, | ||
| 32 | #define SELNLGRP_NONE SELNLGRP_NONE | ||
| 33 | SELNLGRP_AVC, | ||
| 34 | #define SELNLGRP_AVC SELNLGRP_AVC | ||
| 35 | __SELNLGRP_MAX | ||
| 36 | }; | ||
| 37 | #define SELNLGRP_MAX (__SELNLGRP_MAX - 1) | ||
| 27 | 38 | ||
| 28 | /* Message structures */ | 39 | /* Message structures */ |
| 29 | struct selnl_msg_setenforce { | 40 | struct selnl_msg_setenforce { |
diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h index f0d423300d84..0fb077d68441 100644 --- a/include/linux/xfrm.h +++ b/include/linux/xfrm.h | |||
| @@ -258,9 +258,27 @@ struct xfrm_usersa_flush { | |||
| 258 | __u8 proto; | 258 | __u8 proto; |
| 259 | }; | 259 | }; |
| 260 | 260 | ||
| 261 | #ifndef __KERNEL__ | ||
| 262 | /* backwards compatibility for userspace */ | ||
| 261 | #define XFRMGRP_ACQUIRE 1 | 263 | #define XFRMGRP_ACQUIRE 1 |
| 262 | #define XFRMGRP_EXPIRE 2 | 264 | #define XFRMGRP_EXPIRE 2 |
| 263 | #define XFRMGRP_SA 4 | 265 | #define XFRMGRP_SA 4 |
| 264 | #define XFRMGRP_POLICY 8 | 266 | #define XFRMGRP_POLICY 8 |
| 267 | #endif | ||
| 268 | |||
| 269 | enum xfrm_nlgroups { | ||
| 270 | XFRMNLGRP_NONE, | ||
| 271 | #define XFRMNLGRP_NONE XFRMNLGRP_NONE | ||
| 272 | XFRMNLGRP_ACQUIRE, | ||
| 273 | #define XFRMNLGRP_ACQUIRE XFRMNLGRP_ACQUIRE | ||
| 274 | XFRMNLGRP_EXPIRE, | ||
| 275 | #define XFRMNLGRP_EXPIRE XFRMNLGRP_EXPIRE | ||
| 276 | XFRMNLGRP_SA, | ||
| 277 | #define XFRMNLGRP_SA XFRMNLGRP_SA | ||
| 278 | XFRMNLGRP_POLICY, | ||
| 279 | #define XFRMNLGRP_POLICY XFRMNLGRP_POLICY | ||
| 280 | __XFRMNLGRP_MAX | ||
| 281 | }; | ||
| 282 | #define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1) | ||
| 265 | 283 | ||
| 266 | #endif /* _LINUX_XFRM_H */ | 284 | #endif /* _LINUX_XFRM_H */ |
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index bc000619f4f8..1ebd735d6439 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c | |||
| @@ -93,7 +93,7 @@ static int send_uevent(const char *signal, const char *obj, | |||
| 93 | } | 93 | } |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | NETLINK_CB(skb).dst_groups = 1; | 96 | NETLINK_CB(skb).dst_group = 1; |
| 97 | return netlink_broadcast(uevent_sock, skb, 0, 1, gfp_mask); | 97 | return netlink_broadcast(uevent_sock, skb, 0, 1, gfp_mask); |
| 98 | } | 98 | } |
| 99 | 99 | ||
diff --git a/net/bridge/netfilter/ebt_ulog.c b/net/bridge/netfilter/ebt_ulog.c index acb888d32587..6845b5dd6d77 100644 --- a/net/bridge/netfilter/ebt_ulog.c +++ b/net/bridge/netfilter/ebt_ulog.c | |||
| @@ -78,8 +78,8 @@ static void ulog_send(unsigned int nlgroup) | |||
| 78 | if (ub->qlen > 1) | 78 | if (ub->qlen > 1) |
| 79 | ub->lastnlh->nlmsg_type = NLMSG_DONE; | 79 | ub->lastnlh->nlmsg_type = NLMSG_DONE; |
| 80 | 80 | ||
| 81 | NETLINK_CB(ub->skb).dst_groups = 1 << nlgroup; | 81 | NETLINK_CB(ub->skb).dst_group = nlgroup + 1; |
| 82 | netlink_broadcast(ebtulognl, ub->skb, 0, 1 << nlgroup, GFP_ATOMIC); | 82 | netlink_broadcast(ebtulognl, ub->skb, 0, nlgroup + 1, GFP_ATOMIC); |
| 83 | 83 | ||
| 84 | ub->qlen = 0; | 84 | ub->qlen = 0; |
| 85 | ub->skb = NULL; | 85 | ub->skb = NULL; |
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 72ee00f7b30c..39fc55edf691 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c | |||
| @@ -2343,8 +2343,8 @@ void neigh_app_ns(struct neighbour *n) | |||
| 2343 | } | 2343 | } |
| 2344 | nlh = (struct nlmsghdr *)skb->data; | 2344 | nlh = (struct nlmsghdr *)skb->data; |
| 2345 | nlh->nlmsg_flags = NLM_F_REQUEST; | 2345 | nlh->nlmsg_flags = NLM_F_REQUEST; |
| 2346 | NETLINK_CB(skb).dst_groups = RTMGRP_NEIGH; | 2346 | NETLINK_CB(skb).dst_group = RTNLGRP_NEIGH; |
| 2347 | netlink_broadcast(rtnl, skb, 0, RTMGRP_NEIGH, GFP_ATOMIC); | 2347 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_NEIGH, GFP_ATOMIC); |
| 2348 | } | 2348 | } |
| 2349 | 2349 | ||
| 2350 | static void neigh_app_notify(struct neighbour *n) | 2350 | static void neigh_app_notify(struct neighbour *n) |
| @@ -2361,8 +2361,8 @@ static void neigh_app_notify(struct neighbour *n) | |||
| 2361 | return; | 2361 | return; |
| 2362 | } | 2362 | } |
| 2363 | nlh = (struct nlmsghdr *)skb->data; | 2363 | nlh = (struct nlmsghdr *)skb->data; |
| 2364 | NETLINK_CB(skb).dst_groups = RTMGRP_NEIGH; | 2364 | NETLINK_CB(skb).dst_group = RTNLGRP_NEIGH; |
| 2365 | netlink_broadcast(rtnl, skb, 0, RTMGRP_NEIGH, GFP_ATOMIC); | 2365 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_NEIGH, GFP_ATOMIC); |
| 2366 | } | 2366 | } |
| 2367 | 2367 | ||
| 2368 | #endif /* CONFIG_ARPD */ | 2368 | #endif /* CONFIG_ARPD */ |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 9b3c61f1a37d..5f3f95b5585d 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
| @@ -148,7 +148,7 @@ int rtnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo) | |||
| 148 | { | 148 | { |
| 149 | int err = 0; | 149 | int err = 0; |
| 150 | 150 | ||
| 151 | NETLINK_CB(skb).dst_groups = group; | 151 | NETLINK_CB(skb).dst_group = group; |
| 152 | if (echo) | 152 | if (echo) |
| 153 | atomic_inc(&skb->users); | 153 | atomic_inc(&skb->users); |
| 154 | netlink_broadcast(rtnl, skb, pid, group, GFP_KERNEL); | 154 | netlink_broadcast(rtnl, skb, pid, group, GFP_KERNEL); |
| @@ -458,8 +458,8 @@ void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change) | |||
| 458 | kfree_skb(skb); | 458 | kfree_skb(skb); |
| 459 | return; | 459 | return; |
| 460 | } | 460 | } |
| 461 | NETLINK_CB(skb).dst_groups = RTMGRP_LINK; | 461 | NETLINK_CB(skb).dst_group = RTNLGRP_LINK; |
| 462 | netlink_broadcast(rtnl, skb, 0, RTMGRP_LINK, GFP_KERNEL); | 462 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_LINK, GFP_KERNEL); |
| 463 | } | 463 | } |
| 464 | 464 | ||
| 465 | static int rtnetlink_done(struct netlink_callback *cb) | 465 | static int rtnetlink_done(struct netlink_callback *cb) |
diff --git a/net/core/wireless.c b/net/core/wireless.c index 3ff5639c0b78..19fa6a5389b3 100644 --- a/net/core/wireless.c +++ b/net/core/wireless.c | |||
| @@ -1144,8 +1144,8 @@ static inline void rtmsg_iwinfo(struct net_device * dev, | |||
| 1144 | kfree_skb(skb); | 1144 | kfree_skb(skb); |
| 1145 | return; | 1145 | return; |
| 1146 | } | 1146 | } |
| 1147 | NETLINK_CB(skb).dst_groups = RTMGRP_LINK; | 1147 | NETLINK_CB(skb).dst_group = RTNLGRP_LINK; |
| 1148 | netlink_broadcast(rtnl, skb, 0, RTMGRP_LINK, GFP_ATOMIC); | 1148 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_LINK, GFP_ATOMIC); |
| 1149 | } | 1149 | } |
| 1150 | #endif /* WE_EVENT_NETLINK */ | 1150 | #endif /* WE_EVENT_NETLINK */ |
| 1151 | 1151 | ||
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c index 00233ecbc9cb..5610bb16dbf9 100644 --- a/net/decnet/dn_dev.c +++ b/net/decnet/dn_dev.c | |||
| @@ -752,16 +752,16 @@ static void rtmsg_ifa(int event, struct dn_ifaddr *ifa) | |||
| 752 | 752 | ||
| 753 | skb = alloc_skb(size, GFP_KERNEL); | 753 | skb = alloc_skb(size, GFP_KERNEL); |
| 754 | if (!skb) { | 754 | if (!skb) { |
| 755 | netlink_set_err(rtnl, 0, RTMGRP_DECnet_IFADDR, ENOBUFS); | 755 | netlink_set_err(rtnl, 0, RTNLGRP_DECnet_IFADDR, ENOBUFS); |
| 756 | return; | 756 | return; |
| 757 | } | 757 | } |
| 758 | if (dn_dev_fill_ifaddr(skb, ifa, 0, 0, event, 0) < 0) { | 758 | if (dn_dev_fill_ifaddr(skb, ifa, 0, 0, event, 0) < 0) { |
| 759 | kfree_skb(skb); | 759 | kfree_skb(skb); |
| 760 | netlink_set_err(rtnl, 0, RTMGRP_DECnet_IFADDR, EINVAL); | 760 | netlink_set_err(rtnl, 0, RTNLGRP_DECnet_IFADDR, EINVAL); |
| 761 | return; | 761 | return; |
| 762 | } | 762 | } |
| 763 | NETLINK_CB(skb).dst_groups = RTMGRP_DECnet_IFADDR; | 763 | NETLINK_CB(skb).dst_group = RTNLGRP_DECnet_IFADDR; |
| 764 | netlink_broadcast(rtnl, skb, 0, RTMGRP_DECnet_IFADDR, GFP_KERNEL); | 764 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_DECnet_IFADDR, GFP_KERNEL); |
| 765 | } | 765 | } |
| 766 | 766 | ||
| 767 | static int dn_dev_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) | 767 | static int dn_dev_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) |
diff --git a/net/decnet/dn_table.c b/net/decnet/dn_table.c index 28ba5777a25a..73a88489ff3e 100644 --- a/net/decnet/dn_table.c +++ b/net/decnet/dn_table.c | |||
| @@ -349,10 +349,10 @@ static void dn_rtmsg_fib(int event, struct dn_fib_node *f, int z, int tb_id, | |||
| 349 | kfree_skb(skb); | 349 | kfree_skb(skb); |
| 350 | return; | 350 | return; |
| 351 | } | 351 | } |
| 352 | NETLINK_CB(skb).dst_groups = RTMGRP_DECnet_ROUTE; | 352 | NETLINK_CB(skb).dst_group = RTNLGRP_DECnet_ROUTE; |
| 353 | if (nlh->nlmsg_flags & NLM_F_ECHO) | 353 | if (nlh->nlmsg_flags & NLM_F_ECHO) |
| 354 | atomic_inc(&skb->users); | 354 | atomic_inc(&skb->users); |
| 355 | netlink_broadcast(rtnl, skb, pid, RTMGRP_DECnet_ROUTE, GFP_KERNEL); | 355 | netlink_broadcast(rtnl, skb, pid, RTNLGRP_DECnet_ROUTE, GFP_KERNEL); |
| 356 | if (nlh->nlmsg_flags & NLM_F_ECHO) | 356 | if (nlh->nlmsg_flags & NLM_F_ECHO) |
| 357 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); | 357 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); |
| 358 | } | 358 | } |
diff --git a/net/decnet/netfilter/dn_rtmsg.c b/net/decnet/netfilter/dn_rtmsg.c index 3068fddb2da3..353fed6888f9 100644 --- a/net/decnet/netfilter/dn_rtmsg.c +++ b/net/decnet/netfilter/dn_rtmsg.c | |||
| @@ -71,10 +71,10 @@ static void dnrmg_send_peer(struct sk_buff *skb) | |||
| 71 | 71 | ||
| 72 | switch(flags & DN_RT_CNTL_MSK) { | 72 | switch(flags & DN_RT_CNTL_MSK) { |
| 73 | case DN_RT_PKT_L1RT: | 73 | case DN_RT_PKT_L1RT: |
| 74 | group = DNRMG_L1_GROUP; | 74 | group = DNRMG_L1_NLGRP; |
| 75 | break; | 75 | break; |
| 76 | case DN_RT_PKT_L2RT: | 76 | case DN_RT_PKT_L2RT: |
| 77 | group = DNRMG_L2_GROUP; | 77 | group = DNRMG_L2_NLGRP; |
| 78 | break; | 78 | break; |
| 79 | default: | 79 | default: |
| 80 | return; | 80 | return; |
| @@ -83,7 +83,7 @@ static void dnrmg_send_peer(struct sk_buff *skb) | |||
| 83 | skb2 = dnrmg_build_message(skb, &status); | 83 | skb2 = dnrmg_build_message(skb, &status); |
| 84 | if (skb2 == NULL) | 84 | if (skb2 == NULL) |
| 85 | return; | 85 | return; |
| 86 | NETLINK_CB(skb2).dst_groups = group; | 86 | NETLINK_CB(skb2).dst_group = group; |
| 87 | netlink_broadcast(dnrmg, skb2, 0, group, GFP_ATOMIC); | 87 | netlink_broadcast(dnrmg, skb2, 0, group, GFP_ATOMIC); |
| 88 | } | 88 | } |
| 89 | 89 | ||
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index d8a10e3dd77d..ba2895ae8151 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c | |||
| @@ -1111,13 +1111,12 @@ static void rtmsg_ifa(int event, struct in_ifaddr* ifa) | |||
| 1111 | struct sk_buff *skb = alloc_skb(size, GFP_KERNEL); | 1111 | struct sk_buff *skb = alloc_skb(size, GFP_KERNEL); |
| 1112 | 1112 | ||
| 1113 | if (!skb) | 1113 | if (!skb) |
| 1114 | netlink_set_err(rtnl, 0, RTMGRP_IPV4_IFADDR, ENOBUFS); | 1114 | netlink_set_err(rtnl, 0, RTNLGRP_IPV4_IFADDR, ENOBUFS); |
| 1115 | else if (inet_fill_ifaddr(skb, ifa, current->pid, 0, event, 0) < 0) { | 1115 | else if (inet_fill_ifaddr(skb, ifa, current->pid, 0, event, 0) < 0) { |
| 1116 | kfree_skb(skb); | 1116 | kfree_skb(skb); |
| 1117 | netlink_set_err(rtnl, 0, RTMGRP_IPV4_IFADDR, EINVAL); | 1117 | netlink_set_err(rtnl, 0, RTNLGRP_IPV4_IFADDR, EINVAL); |
| 1118 | } else { | 1118 | } else { |
| 1119 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV4_IFADDR; | 1119 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_IPV4_IFADDR, GFP_KERNEL); |
| 1120 | netlink_broadcast(rtnl, skb, 0, RTMGRP_IPV4_IFADDR, GFP_KERNEL); | ||
| 1121 | } | 1120 | } |
| 1122 | } | 1121 | } |
| 1123 | 1122 | ||
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 75d03e37b9a8..d4e7b578a25d 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
| @@ -560,7 +560,7 @@ static void nl_fib_input(struct sock *sk, int len) | |||
| 560 | pid = nlh->nlmsg_pid; /*pid of sending process */ | 560 | pid = nlh->nlmsg_pid; /*pid of sending process */ |
| 561 | NETLINK_CB(skb).pid = 0; /* from kernel */ | 561 | NETLINK_CB(skb).pid = 0; /* from kernel */ |
| 562 | NETLINK_CB(skb).dst_pid = pid; | 562 | NETLINK_CB(skb).dst_pid = pid; |
| 563 | NETLINK_CB(skb).dst_groups = 0; /* unicast */ | 563 | NETLINK_CB(skb).dst_group = 0; /* unicast */ |
| 564 | netlink_unicast(sk, skb, pid, MSG_DONTWAIT); | 564 | netlink_unicast(sk, skb, pid, MSG_DONTWAIT); |
| 565 | } | 565 | } |
| 566 | 566 | ||
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c index e278cb9d0075..7e4651b3caa8 100644 --- a/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c | |||
| @@ -290,10 +290,10 @@ void rtmsg_fib(int event, u32 key, struct fib_alias *fa, | |||
| 290 | kfree_skb(skb); | 290 | kfree_skb(skb); |
| 291 | return; | 291 | return; |
| 292 | } | 292 | } |
| 293 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV4_ROUTE; | 293 | NETLINK_CB(skb).dst_group = RTNLGRP_IPV4_ROUTE; |
| 294 | if (n->nlmsg_flags&NLM_F_ECHO) | 294 | if (n->nlmsg_flags&NLM_F_ECHO) |
| 295 | atomic_inc(&skb->users); | 295 | atomic_inc(&skb->users); |
| 296 | netlink_broadcast(rtnl, skb, pid, RTMGRP_IPV4_ROUTE, GFP_KERNEL); | 296 | netlink_broadcast(rtnl, skb, pid, RTNLGRP_IPV4_ROUTE, GFP_KERNEL); |
| 297 | if (n->nlmsg_flags&NLM_F_ECHO) | 297 | if (n->nlmsg_flags&NLM_F_ECHO) |
| 298 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); | 298 | netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); |
| 299 | } | 299 | } |
diff --git a/net/ipv4/netfilter/ip_conntrack_netlink.c b/net/ipv4/netfilter/ip_conntrack_netlink.c index 1221a9c8bac2..a4e9278db4ed 100644 --- a/net/ipv4/netfilter/ip_conntrack_netlink.c +++ b/net/ipv4/netfilter/ip_conntrack_netlink.c | |||
| @@ -297,7 +297,7 @@ static int ctnetlink_conntrack_event(struct notifier_block *this, | |||
| 297 | struct sk_buff *skb; | 297 | struct sk_buff *skb; |
| 298 | unsigned int type; | 298 | unsigned int type; |
| 299 | unsigned char *b; | 299 | unsigned char *b; |
| 300 | unsigned int flags = 0, groups; | 300 | unsigned int flags = 0, group; |
| 301 | 301 | ||
| 302 | /* ignore our fake conntrack entry */ | 302 | /* ignore our fake conntrack entry */ |
| 303 | if (ct == &ip_conntrack_untracked) | 303 | if (ct == &ip_conntrack_untracked) |
| @@ -305,7 +305,7 @@ static int ctnetlink_conntrack_event(struct notifier_block *this, | |||
| 305 | 305 | ||
| 306 | if (events & IPCT_DESTROY) { | 306 | if (events & IPCT_DESTROY) { |
| 307 | type = IPCTNL_MSG_CT_DELETE; | 307 | type = IPCTNL_MSG_CT_DELETE; |
| 308 | groups = NF_NETLINK_CONNTRACK_DESTROY; | 308 | group = NFNLGRP_CONNTRACK_DESTROY; |
| 309 | goto alloc_skb; | 309 | goto alloc_skb; |
| 310 | } | 310 | } |
| 311 | if (events & (IPCT_NEW | IPCT_RELATED)) { | 311 | if (events & (IPCT_NEW | IPCT_RELATED)) { |
| @@ -313,7 +313,7 @@ static int ctnetlink_conntrack_event(struct notifier_block *this, | |||
| 313 | flags = NLM_F_CREATE|NLM_F_EXCL; | 313 | flags = NLM_F_CREATE|NLM_F_EXCL; |
| 314 | /* dump everything */ | 314 | /* dump everything */ |
| 315 | events = ~0UL; | 315 | events = ~0UL; |
| 316 | groups = NF_NETLINK_CONNTRACK_NEW; | 316 | group = NFNLGRP_CONNTRACK_NEW; |
| 317 | goto alloc_skb; | 317 | goto alloc_skb; |
| 318 | } | 318 | } |
| 319 | if (events & (IPCT_STATUS | | 319 | if (events & (IPCT_STATUS | |
| @@ -322,7 +322,7 @@ static int ctnetlink_conntrack_event(struct notifier_block *this, | |||
| 322 | IPCT_HELPINFO | | 322 | IPCT_HELPINFO | |
| 323 | IPCT_NATINFO)) { | 323 | IPCT_NATINFO)) { |
| 324 | type = IPCTNL_MSG_CT_NEW; | 324 | type = IPCTNL_MSG_CT_NEW; |
| 325 | groups = NF_NETLINK_CONNTRACK_UPDATE; | 325 | group = NFNLGRP_CONNTRACK_UPDATE; |
| 326 | goto alloc_skb; | 326 | goto alloc_skb; |
| 327 | } | 327 | } |
| 328 | 328 | ||
| @@ -375,7 +375,7 @@ alloc_skb: | |||
| 375 | goto nfattr_failure; | 375 | goto nfattr_failure; |
| 376 | 376 | ||
| 377 | nlh->nlmsg_len = skb->tail - b; | 377 | nlh->nlmsg_len = skb->tail - b; |
| 378 | nfnetlink_send(skb, 0, groups, 0); | 378 | nfnetlink_send(skb, 0, group, 0); |
| 379 | return NOTIFY_DONE; | 379 | return NOTIFY_DONE; |
| 380 | 380 | ||
| 381 | nlmsg_failure: | 381 | nlmsg_failure: |
| @@ -1194,7 +1194,7 @@ static int ctnetlink_expect_event(struct notifier_block *this, | |||
| 1194 | 1194 | ||
| 1195 | nlh->nlmsg_len = skb->tail - b; | 1195 | nlh->nlmsg_len = skb->tail - b; |
| 1196 | proto = exp->tuple.dst.protonum; | 1196 | proto = exp->tuple.dst.protonum; |
| 1197 | nfnetlink_send(skb, 0, NF_NETLINK_CONNTRACK_EXP_NEW, 0); | 1197 | nfnetlink_send(skb, 0, NFNLGRP_CONNTRACK_EXP_NEW, 0); |
| 1198 | return NOTIFY_DONE; | 1198 | return NOTIFY_DONE; |
| 1199 | 1199 | ||
| 1200 | nlmsg_failure: | 1200 | nlmsg_failure: |
diff --git a/net/ipv4/netfilter/ipt_ULOG.c b/net/ipv4/netfilter/ipt_ULOG.c index 1d8ac4595e17..89816b83455e 100644 --- a/net/ipv4/netfilter/ipt_ULOG.c +++ b/net/ipv4/netfilter/ipt_ULOG.c | |||
| @@ -116,10 +116,10 @@ static void ulog_send(unsigned int nlgroupnum) | |||
| 116 | if (ub->qlen > 1) | 116 | if (ub->qlen > 1) |
| 117 | ub->lastnlh->nlmsg_type = NLMSG_DONE; | 117 | ub->lastnlh->nlmsg_type = NLMSG_DONE; |
| 118 | 118 | ||
| 119 | NETLINK_CB(ub->skb).dst_groups = (1 << nlgroupnum); | 119 | NETLINK_CB(ub->skb).dst_group = nlgroupnum + 1; |
| 120 | DEBUGP("ipt_ULOG: throwing %d packets to netlink mask %u\n", | 120 | DEBUGP("ipt_ULOG: throwing %d packets to netlink group %u\n", |
| 121 | ub->qlen, nlgroupnum); | 121 | ub->qlen, nlgroupnum + 1); |
| 122 | netlink_broadcast(nflognl, ub->skb, 0, (1 << nlgroupnum), GFP_ATOMIC); | 122 | netlink_broadcast(nflognl, ub->skb, 0, nlgroupnum + 1, GFP_ATOMIC); |
| 123 | 123 | ||
| 124 | ub->qlen = 0; | 124 | ub->qlen = 0; |
| 125 | ub->skb = NULL; | 125 | ub->skb = NULL; |
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index b9c3da349492..493abf94bcfc 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
| @@ -2858,16 +2858,16 @@ static void inet6_ifa_notify(int event, struct inet6_ifaddr *ifa) | |||
| 2858 | 2858 | ||
| 2859 | skb = alloc_skb(size, GFP_ATOMIC); | 2859 | skb = alloc_skb(size, GFP_ATOMIC); |
| 2860 | if (!skb) { | 2860 | if (!skb) { |
| 2861 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_IFADDR, ENOBUFS); | 2861 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_IFADDR, ENOBUFS); |
| 2862 | return; | 2862 | return; |
| 2863 | } | 2863 | } |
| 2864 | if (inet6_fill_ifaddr(skb, ifa, current->pid, 0, event, 0) < 0) { | 2864 | if (inet6_fill_ifaddr(skb, ifa, current->pid, 0, event, 0) < 0) { |
| 2865 | kfree_skb(skb); | 2865 | kfree_skb(skb); |
| 2866 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_IFADDR, EINVAL); | 2866 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_IFADDR, EINVAL); |
| 2867 | return; | 2867 | return; |
| 2868 | } | 2868 | } |
| 2869 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV6_IFADDR; | 2869 | NETLINK_CB(skb).dst_group = RTNLGRP_IPV6_IFADDR; |
| 2870 | netlink_broadcast(rtnl, skb, 0, RTMGRP_IPV6_IFADDR, GFP_ATOMIC); | 2870 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_IPV6_IFADDR, GFP_ATOMIC); |
| 2871 | } | 2871 | } |
| 2872 | 2872 | ||
| 2873 | static void inline ipv6_store_devconf(struct ipv6_devconf *cnf, | 2873 | static void inline ipv6_store_devconf(struct ipv6_devconf *cnf, |
| @@ -2994,16 +2994,16 @@ void inet6_ifinfo_notify(int event, struct inet6_dev *idev) | |||
| 2994 | 2994 | ||
| 2995 | skb = alloc_skb(size, GFP_ATOMIC); | 2995 | skb = alloc_skb(size, GFP_ATOMIC); |
| 2996 | if (!skb) { | 2996 | if (!skb) { |
| 2997 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_IFINFO, ENOBUFS); | 2997 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_IFINFO, ENOBUFS); |
| 2998 | return; | 2998 | return; |
| 2999 | } | 2999 | } |
| 3000 | if (inet6_fill_ifinfo(skb, idev, current->pid, 0, event, 0) < 0) { | 3000 | if (inet6_fill_ifinfo(skb, idev, current->pid, 0, event, 0) < 0) { |
| 3001 | kfree_skb(skb); | 3001 | kfree_skb(skb); |
| 3002 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_IFINFO, EINVAL); | 3002 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_IFINFO, EINVAL); |
| 3003 | return; | 3003 | return; |
| 3004 | } | 3004 | } |
| 3005 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV6_IFINFO; | 3005 | NETLINK_CB(skb).dst_group = RTNLGRP_IPV6_IFINFO; |
| 3006 | netlink_broadcast(rtnl, skb, 0, RTMGRP_IPV6_IFINFO, GFP_ATOMIC); | 3006 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_IPV6_IFINFO, GFP_ATOMIC); |
| 3007 | } | 3007 | } |
| 3008 | 3008 | ||
| 3009 | static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev, | 3009 | static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev, |
| @@ -3054,16 +3054,16 @@ static void inet6_prefix_notify(int event, struct inet6_dev *idev, | |||
| 3054 | 3054 | ||
| 3055 | skb = alloc_skb(size, GFP_ATOMIC); | 3055 | skb = alloc_skb(size, GFP_ATOMIC); |
| 3056 | if (!skb) { | 3056 | if (!skb) { |
| 3057 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_PREFIX, ENOBUFS); | 3057 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_PREFIX, ENOBUFS); |
| 3058 | return; | 3058 | return; |
| 3059 | } | 3059 | } |
| 3060 | if (inet6_fill_prefix(skb, idev, pinfo, current->pid, 0, event, 0) < 0) { | 3060 | if (inet6_fill_prefix(skb, idev, pinfo, current->pid, 0, event, 0) < 0) { |
| 3061 | kfree_skb(skb); | 3061 | kfree_skb(skb); |
| 3062 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_PREFIX, EINVAL); | 3062 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_PREFIX, EINVAL); |
| 3063 | return; | 3063 | return; |
| 3064 | } | 3064 | } |
| 3065 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV6_PREFIX; | 3065 | NETLINK_CB(skb).dst_group = RTNLGRP_IPV6_PREFIX; |
| 3066 | netlink_broadcast(rtnl, skb, 0, RTMGRP_IPV6_PREFIX, GFP_ATOMIC); | 3066 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_IPV6_PREFIX, GFP_ATOMIC); |
| 3067 | } | 3067 | } |
| 3068 | 3068 | ||
| 3069 | static struct rtnetlink_link inet6_rtnetlink_table[RTM_NR_MSGTYPES] = { | 3069 | static struct rtnetlink_link inet6_rtnetlink_table[RTM_NR_MSGTYPES] = { |
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 878789b3122d..6ea494ab4e02 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
| @@ -1850,16 +1850,16 @@ void inet6_rt_notify(int event, struct rt6_info *rt, struct nlmsghdr *nlh, | |||
| 1850 | 1850 | ||
| 1851 | skb = alloc_skb(size, gfp_any()); | 1851 | skb = alloc_skb(size, gfp_any()); |
| 1852 | if (!skb) { | 1852 | if (!skb) { |
| 1853 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_ROUTE, ENOBUFS); | 1853 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_ROUTE, ENOBUFS); |
| 1854 | return; | 1854 | return; |
| 1855 | } | 1855 | } |
| 1856 | if (rt6_fill_node(skb, rt, NULL, NULL, 0, event, pid, seq, 0, 0) < 0) { | 1856 | if (rt6_fill_node(skb, rt, NULL, NULL, 0, event, pid, seq, 0, 0) < 0) { |
| 1857 | kfree_skb(skb); | 1857 | kfree_skb(skb); |
| 1858 | netlink_set_err(rtnl, 0, RTMGRP_IPV6_ROUTE, EINVAL); | 1858 | netlink_set_err(rtnl, 0, RTNLGRP_IPV6_ROUTE, EINVAL); |
| 1859 | return; | 1859 | return; |
| 1860 | } | 1860 | } |
| 1861 | NETLINK_CB(skb).dst_groups = RTMGRP_IPV6_ROUTE; | 1861 | NETLINK_CB(skb).dst_group = RTNLGRP_IPV6_ROUTE; |
| 1862 | netlink_broadcast(rtnl, skb, 0, RTMGRP_IPV6_ROUTE, gfp_any()); | 1862 | netlink_broadcast(rtnl, skb, 0, RTNLGRP_IPV6_ROUTE, gfp_any()); |
| 1863 | } | 1863 | } |
| 1864 | 1864 | ||
| 1865 | /* | 1865 | /* |
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c index 84efffdbade3..36a4c5fbb7d7 100644 --- a/net/netfilter/nfnetlink.c +++ b/net/netfilter/nfnetlink.c | |||
| @@ -198,7 +198,7 @@ int nfnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo) | |||
| 198 | int allocation = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; | 198 | int allocation = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL; |
| 199 | int err = 0; | 199 | int err = 0; |
| 200 | 200 | ||
| 201 | NETLINK_CB(skb).dst_groups = group; | 201 | NETLINK_CB(skb).dst_group = group; |
| 202 | if (echo) | 202 | if (echo) |
| 203 | atomic_inc(&skb->users); | 203 | atomic_inc(&skb->users); |
| 204 | netlink_broadcast(nfnl, skb, pid, group, allocation); | 204 | netlink_broadcast(nfnl, skb, pid, group, allocation); |
diff --git a/net/sched/act_api.c b/net/sched/act_api.c index c896a0118a32..8aebe8f6d271 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c | |||
| @@ -593,7 +593,7 @@ static int tca_action_flush(struct rtattr *rta, struct nlmsghdr *n, u32 pid) | |||
| 593 | nlh->nlmsg_flags |= NLM_F_ROOT; | 593 | nlh->nlmsg_flags |= NLM_F_ROOT; |
| 594 | module_put(a->ops->owner); | 594 | module_put(a->ops->owner); |
| 595 | kfree(a); | 595 | kfree(a); |
| 596 | err = rtnetlink_send(skb, pid, RTMGRP_TC, n->nlmsg_flags&NLM_F_ECHO); | 596 | err = rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); |
| 597 | if (err > 0) | 597 | if (err > 0) |
| 598 | return 0; | 598 | return 0; |
| 599 | 599 | ||
| @@ -656,7 +656,7 @@ tca_action_gd(struct rtattr *rta, struct nlmsghdr *n, u32 pid, int event) | |||
| 656 | 656 | ||
| 657 | /* now do the delete */ | 657 | /* now do the delete */ |
| 658 | tcf_action_destroy(head, 0); | 658 | tcf_action_destroy(head, 0); |
| 659 | ret = rtnetlink_send(skb, pid, RTMGRP_TC, | 659 | ret = rtnetlink_send(skb, pid, RTNLGRP_TC, |
| 660 | n->nlmsg_flags&NLM_F_ECHO); | 660 | n->nlmsg_flags&NLM_F_ECHO); |
| 661 | if (ret > 0) | 661 | if (ret > 0) |
| 662 | return 0; | 662 | return 0; |
| @@ -698,9 +698,9 @@ static int tcf_add_notify(struct tc_action *a, u32 pid, u32 seq, int event, | |||
| 698 | x->rta_len = skb->tail - (u8*)x; | 698 | x->rta_len = skb->tail - (u8*)x; |
| 699 | 699 | ||
| 700 | nlh->nlmsg_len = skb->tail - b; | 700 | nlh->nlmsg_len = skb->tail - b; |
| 701 | NETLINK_CB(skb).dst_groups = RTMGRP_TC; | 701 | NETLINK_CB(skb).dst_group = RTNLGRP_TC; |
| 702 | 702 | ||
| 703 | err = rtnetlink_send(skb, pid, RTMGRP_TC, flags&NLM_F_ECHO); | 703 | err = rtnetlink_send(skb, pid, RTNLGRP_TC, flags&NLM_F_ECHO); |
| 704 | if (err > 0) | 704 | if (err > 0) |
| 705 | err = 0; | 705 | err = 0; |
| 706 | return err; | 706 | return err; |
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 3b5714ef4d1a..b4d89fbb3782 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c | |||
| @@ -367,7 +367,7 @@ static int tfilter_notify(struct sk_buff *oskb, struct nlmsghdr *n, | |||
| 367 | return -EINVAL; | 367 | return -EINVAL; |
| 368 | } | 368 | } |
| 369 | 369 | ||
| 370 | return rtnetlink_send(skb, pid, RTMGRP_TC, n->nlmsg_flags&NLM_F_ECHO); | 370 | return rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); |
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | struct tcf_dump_args | 373 | struct tcf_dump_args |
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index b9a069af4a02..737681cb9a92 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c | |||
| @@ -816,7 +816,7 @@ static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n, | |||
| 816 | } | 816 | } |
| 817 | 817 | ||
| 818 | if (skb->len) | 818 | if (skb->len) |
| 819 | return rtnetlink_send(skb, pid, RTMGRP_TC, n->nlmsg_flags&NLM_F_ECHO); | 819 | return rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); |
| 820 | 820 | ||
| 821 | err_out: | 821 | err_out: |
| 822 | kfree_skb(skb); | 822 | kfree_skb(skb); |
| @@ -1040,7 +1040,7 @@ static int tclass_notify(struct sk_buff *oskb, struct nlmsghdr *n, | |||
| 1040 | return -EINVAL; | 1040 | return -EINVAL; |
| 1041 | } | 1041 | } |
| 1042 | 1042 | ||
| 1043 | return rtnetlink_send(skb, pid, RTMGRP_TC, n->nlmsg_flags&NLM_F_ECHO); | 1043 | return rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); |
| 1044 | } | 1044 | } |
| 1045 | 1045 | ||
| 1046 | struct qdisc_dump_args | 1046 | struct qdisc_dump_args |
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index 4d553a1d2169..0579d209af27 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
| @@ -1125,9 +1125,8 @@ static int xfrm_exp_state_notify(struct xfrm_state *x, struct km_event *c) | |||
| 1125 | if (build_expire(skb, x, c->data.hard) < 0) | 1125 | if (build_expire(skb, x, c->data.hard) < 0) |
| 1126 | BUG(); | 1126 | BUG(); |
| 1127 | 1127 | ||
| 1128 | NETLINK_CB(skb).dst_groups = XFRMGRP_EXPIRE; | 1128 | NETLINK_CB(skb).dst_group = XFRMNLGRP_EXPIRE; |
| 1129 | 1129 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_EXPIRE, GFP_ATOMIC); | |
| 1130 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_EXPIRE, GFP_ATOMIC); | ||
| 1131 | } | 1130 | } |
| 1132 | 1131 | ||
| 1133 | static int xfrm_notify_sa_flush(struct km_event *c) | 1132 | static int xfrm_notify_sa_flush(struct km_event *c) |
| @@ -1152,9 +1151,8 @@ static int xfrm_notify_sa_flush(struct km_event *c) | |||
| 1152 | 1151 | ||
| 1153 | nlh->nlmsg_len = skb->tail - b; | 1152 | nlh->nlmsg_len = skb->tail - b; |
| 1154 | 1153 | ||
| 1155 | NETLINK_CB(skb).dst_groups = XFRMGRP_SA; | 1154 | NETLINK_CB(skb).dst_group = XFRMNLGRP_SA; |
| 1156 | 1155 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_SA, GFP_ATOMIC); | |
| 1157 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); | ||
| 1158 | 1156 | ||
| 1159 | nlmsg_failure: | 1157 | nlmsg_failure: |
| 1160 | kfree_skb(skb); | 1158 | kfree_skb(skb); |
| @@ -1228,9 +1226,8 @@ static int xfrm_notify_sa(struct xfrm_state *x, struct km_event *c) | |||
| 1228 | 1226 | ||
| 1229 | nlh->nlmsg_len = skb->tail - b; | 1227 | nlh->nlmsg_len = skb->tail - b; |
| 1230 | 1228 | ||
| 1231 | NETLINK_CB(skb).dst_groups = XFRMGRP_SA; | 1229 | NETLINK_CB(skb).dst_group = XFRMNLGRP_SA; |
| 1232 | 1230 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_SA, GFP_ATOMIC); | |
| 1233 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_SA, GFP_ATOMIC); | ||
| 1234 | 1231 | ||
| 1235 | nlmsg_failure: | 1232 | nlmsg_failure: |
| 1236 | rtattr_failure: | 1233 | rtattr_failure: |
| @@ -1308,9 +1305,8 @@ static int xfrm_send_acquire(struct xfrm_state *x, struct xfrm_tmpl *xt, | |||
| 1308 | if (build_acquire(skb, x, xt, xp, dir) < 0) | 1305 | if (build_acquire(skb, x, xt, xp, dir) < 0) |
| 1309 | BUG(); | 1306 | BUG(); |
| 1310 | 1307 | ||
| 1311 | NETLINK_CB(skb).dst_groups = XFRMGRP_ACQUIRE; | 1308 | NETLINK_CB(skb).dst_group = XFRMNLGRP_ACQUIRE; |
| 1312 | 1309 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_ACQUIRE, GFP_ATOMIC); | |
| 1313 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_ACQUIRE, GFP_ATOMIC); | ||
| 1314 | } | 1310 | } |
| 1315 | 1311 | ||
| 1316 | /* User gives us xfrm_user_policy_info followed by an array of 0 | 1312 | /* User gives us xfrm_user_policy_info followed by an array of 0 |
| @@ -1409,9 +1405,8 @@ static int xfrm_exp_policy_notify(struct xfrm_policy *xp, int dir, struct km_eve | |||
| 1409 | if (build_polexpire(skb, xp, dir, c->data.hard) < 0) | 1405 | if (build_polexpire(skb, xp, dir, c->data.hard) < 0) |
| 1410 | BUG(); | 1406 | BUG(); |
| 1411 | 1407 | ||
| 1412 | NETLINK_CB(skb).dst_groups = XFRMGRP_EXPIRE; | 1408 | NETLINK_CB(skb).dst_group = XFRMNLGRP_EXPIRE; |
| 1413 | 1409 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_EXPIRE, GFP_ATOMIC); | |
| 1414 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_EXPIRE, GFP_ATOMIC); | ||
| 1415 | } | 1410 | } |
| 1416 | 1411 | ||
| 1417 | static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *c) | 1412 | static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event *c) |
| @@ -1459,9 +1454,8 @@ static int xfrm_notify_policy(struct xfrm_policy *xp, int dir, struct km_event * | |||
| 1459 | 1454 | ||
| 1460 | nlh->nlmsg_len = skb->tail - b; | 1455 | nlh->nlmsg_len = skb->tail - b; |
| 1461 | 1456 | ||
| 1462 | NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY; | 1457 | NETLINK_CB(skb).dst_group = XFRMNLGRP_POLICY; |
| 1463 | 1458 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC); | |
| 1464 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); | ||
| 1465 | 1459 | ||
| 1466 | nlmsg_failure: | 1460 | nlmsg_failure: |
| 1467 | rtattr_failure: | 1461 | rtattr_failure: |
| @@ -1486,9 +1480,8 @@ static int xfrm_notify_policy_flush(struct km_event *c) | |||
| 1486 | 1480 | ||
| 1487 | nlh->nlmsg_len = skb->tail - b; | 1481 | nlh->nlmsg_len = skb->tail - b; |
| 1488 | 1482 | ||
| 1489 | NETLINK_CB(skb).dst_groups = XFRMGRP_POLICY; | 1483 | NETLINK_CB(skb).dst_group = XFRMNLGRP_POLICY; |
| 1490 | 1484 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC); | |
| 1491 | return netlink_broadcast(xfrm_nl, skb, 0, XFRMGRP_POLICY, GFP_ATOMIC); | ||
| 1492 | 1485 | ||
| 1493 | nlmsg_failure: | 1486 | nlmsg_failure: |
| 1494 | kfree_skb(skb); | 1487 | kfree_skb(skb); |
diff --git a/security/selinux/netlink.c b/security/selinux/netlink.c index 0f7be6524555..20f481015db4 100644 --- a/security/selinux/netlink.c +++ b/security/selinux/netlink.c | |||
| @@ -80,8 +80,8 @@ static void selnl_notify(int msgtype, void *data) | |||
| 80 | nlh = NLMSG_PUT(skb, 0, 0, msgtype, len); | 80 | nlh = NLMSG_PUT(skb, 0, 0, msgtype, len); |
| 81 | selnl_add_payload(nlh, len, msgtype, data); | 81 | selnl_add_payload(nlh, len, msgtype, data); |
| 82 | nlh->nlmsg_len = skb->tail - tmp; | 82 | nlh->nlmsg_len = skb->tail - tmp; |
| 83 | NETLINK_CB(skb).dst_groups = SELNL_GRP_AVC; | 83 | NETLINK_CB(skb).dst_group = SELNLGRP_AVC; |
| 84 | netlink_broadcast(selnl, skb, 0, SELNL_GRP_AVC, GFP_USER); | 84 | netlink_broadcast(selnl, skb, 0, SELNLGRP_AVC, GFP_USER); |
| 85 | out: | 85 | out: |
| 86 | return; | 86 | return; |
| 87 | 87 | ||
