diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-11-19 09:19:38 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-19 16:39:06 -0500 |
commit | 68eb55031da7c967d954e5f9415cd05f4abdb692 (patch) | |
tree | 75751944b0c808ba191bcc6a752389593c41e805 /net | |
parent | 62b68e99faa802352e9cb2ae91adecd8dfddf1b8 (diff) |
genetlink: pass family to functions using groups
This doesn't really change anything, but prepares for the
next patch that will change the APIs to pass the group ID
within the family, rather than the global group ID.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/drop_monitor.c | 3 | ||||
-rw-r--r-- | net/hsr/hsr_netlink.c | 6 | ||||
-rw-r--r-- | net/ieee802154/netlink.c | 2 | ||||
-rw-r--r-- | net/netlink/genetlink.c | 12 | ||||
-rw-r--r-- | net/nfc/netlink.c | 39 | ||||
-rw-r--r-- | net/openvswitch/datapath.c | 35 | ||||
-rw-r--r-- | net/openvswitch/datapath.h | 1 | ||||
-rw-r--r-- | net/openvswitch/dp_notify.c | 5 | ||||
-rw-r--r-- | net/wimax/op-msg.c | 3 | ||||
-rw-r--r-- | net/wimax/stack.c | 3 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 70 |
11 files changed, 105 insertions, 74 deletions
diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c index 46ee488c0015..1eab1dc48821 100644 --- a/net/core/drop_monitor.c +++ b/net/core/drop_monitor.c | |||
@@ -120,7 +120,8 @@ static void send_dm_alert(struct work_struct *work) | |||
120 | skb = reset_per_cpu_data(data); | 120 | skb = reset_per_cpu_data(data); |
121 | 121 | ||
122 | if (skb) | 122 | if (skb) |
123 | genlmsg_multicast(skb, 0, dm_mcgrp.id, GFP_KERNEL); | 123 | genlmsg_multicast(&net_drop_monitor_family, skb, 0, |
124 | dm_mcgrp.id, GFP_KERNEL); | ||
124 | } | 125 | } |
125 | 126 | ||
126 | /* | 127 | /* |
diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c index 908e335dcdc9..0009416c08c2 100644 --- a/net/hsr/hsr_netlink.c +++ b/net/hsr/hsr_netlink.c | |||
@@ -129,7 +129,8 @@ void hsr_nl_ringerror(struct hsr_priv *hsr_priv, unsigned char addr[ETH_ALEN], | |||
129 | goto nla_put_failure; | 129 | goto nla_put_failure; |
130 | 130 | ||
131 | genlmsg_end(skb, msg_head); | 131 | genlmsg_end(skb, msg_head); |
132 | genlmsg_multicast(skb, 0, hsr_network_genl_mcgrp.id, GFP_ATOMIC); | 132 | genlmsg_multicast(&hsr_genl_family, skb, 0, |
133 | hsr_network_genl_mcgrp.id, GFP_ATOMIC); | ||
133 | 134 | ||
134 | return; | 135 | return; |
135 | 136 | ||
@@ -163,7 +164,8 @@ void hsr_nl_nodedown(struct hsr_priv *hsr_priv, unsigned char addr[ETH_ALEN]) | |||
163 | goto nla_put_failure; | 164 | goto nla_put_failure; |
164 | 165 | ||
165 | genlmsg_end(skb, msg_head); | 166 | genlmsg_end(skb, msg_head); |
166 | genlmsg_multicast(skb, 0, hsr_network_genl_mcgrp.id, GFP_ATOMIC); | 167 | genlmsg_multicast(&hsr_genl_family, skb, 0, |
168 | hsr_network_genl_mcgrp.id, GFP_ATOMIC); | ||
167 | 169 | ||
168 | return; | 170 | return; |
169 | 171 | ||
diff --git a/net/ieee802154/netlink.c b/net/ieee802154/netlink.c index 1a81709a4717..5172f467a383 100644 --- a/net/ieee802154/netlink.c +++ b/net/ieee802154/netlink.c | |||
@@ -70,7 +70,7 @@ int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group) | |||
70 | if (genlmsg_end(msg, hdr) < 0) | 70 | if (genlmsg_end(msg, hdr) < 0) |
71 | goto out; | 71 | goto out; |
72 | 72 | ||
73 | return genlmsg_multicast(msg, 0, group, GFP_ATOMIC); | 73 | return genlmsg_multicast(&nl802154_family, msg, 0, group, GFP_ATOMIC); |
74 | out: | 74 | out: |
75 | nlmsg_free(msg); | 75 | nlmsg_free(msg); |
76 | return -ENOBUFS; | 76 | return -ENOBUFS; |
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index e9ef640200b4..36e3a86cacf6 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c | |||
@@ -883,11 +883,12 @@ static int genl_ctrl_event(int event, struct genl_family *family, | |||
883 | return PTR_ERR(msg); | 883 | return PTR_ERR(msg); |
884 | 884 | ||
885 | if (!family->netnsok) { | 885 | if (!family->netnsok) { |
886 | genlmsg_multicast_netns(&init_net, msg, 0, | 886 | genlmsg_multicast_netns(&genl_ctrl, &init_net, msg, 0, |
887 | GENL_ID_CTRL, GFP_KERNEL); | 887 | GENL_ID_CTRL, GFP_KERNEL); |
888 | } else { | 888 | } else { |
889 | rcu_read_lock(); | 889 | rcu_read_lock(); |
890 | genlmsg_multicast_allns(msg, 0, GENL_ID_CTRL, GFP_ATOMIC); | 890 | genlmsg_multicast_allns(&genl_ctrl, msg, 0, |
891 | GENL_ID_CTRL, GFP_ATOMIC); | ||
891 | rcu_read_unlock(); | 892 | rcu_read_unlock(); |
892 | } | 893 | } |
893 | 894 | ||
@@ -993,14 +994,15 @@ static int genlmsg_mcast(struct sk_buff *skb, u32 portid, unsigned long group, | |||
993 | return err; | 994 | return err; |
994 | } | 995 | } |
995 | 996 | ||
996 | int genlmsg_multicast_allns(struct sk_buff *skb, u32 portid, unsigned int group, | 997 | int genlmsg_multicast_allns(struct genl_family *family, struct sk_buff *skb, |
997 | gfp_t flags) | 998 | u32 portid, unsigned int group, gfp_t flags) |
998 | { | 999 | { |
999 | return genlmsg_mcast(skb, portid, group, flags); | 1000 | return genlmsg_mcast(skb, portid, group, flags); |
1000 | } | 1001 | } |
1001 | EXPORT_SYMBOL(genlmsg_multicast_allns); | 1002 | EXPORT_SYMBOL(genlmsg_multicast_allns); |
1002 | 1003 | ||
1003 | void genl_notify(struct sk_buff *skb, struct net *net, u32 portid, u32 group, | 1004 | void genl_notify(struct genl_family *family, |
1005 | struct sk_buff *skb, struct net *net, u32 portid, u32 group, | ||
1004 | struct nlmsghdr *nlh, gfp_t flags) | 1006 | struct nlmsghdr *nlh, gfp_t flags) |
1005 | { | 1007 | { |
1006 | struct sock *sk = net->genl_sock; | 1008 | struct sock *sk = net->genl_sock; |
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index fe6760d328a0..3092df313fb1 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c | |||
@@ -194,7 +194,8 @@ int nfc_genl_targets_found(struct nfc_dev *dev) | |||
194 | 194 | ||
195 | genlmsg_end(msg, hdr); | 195 | genlmsg_end(msg, hdr); |
196 | 196 | ||
197 | return genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_ATOMIC); | 197 | return genlmsg_multicast(&nfc_genl_family, msg, 0, |
198 | nfc_genl_event_mcgrp.id, GFP_ATOMIC); | ||
198 | 199 | ||
199 | nla_put_failure: | 200 | nla_put_failure: |
200 | genlmsg_cancel(msg, hdr); | 201 | genlmsg_cancel(msg, hdr); |
@@ -223,7 +224,8 @@ int nfc_genl_target_lost(struct nfc_dev *dev, u32 target_idx) | |||
223 | 224 | ||
224 | genlmsg_end(msg, hdr); | 225 | genlmsg_end(msg, hdr); |
225 | 226 | ||
226 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 227 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
228 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
227 | 229 | ||
228 | return 0; | 230 | return 0; |
229 | 231 | ||
@@ -255,7 +257,8 @@ int nfc_genl_tm_activated(struct nfc_dev *dev, u32 protocol) | |||
255 | 257 | ||
256 | genlmsg_end(msg, hdr); | 258 | genlmsg_end(msg, hdr); |
257 | 259 | ||
258 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 260 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
261 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
259 | 262 | ||
260 | return 0; | 263 | return 0; |
261 | 264 | ||
@@ -285,7 +288,8 @@ int nfc_genl_tm_deactivated(struct nfc_dev *dev) | |||
285 | 288 | ||
286 | genlmsg_end(msg, hdr); | 289 | genlmsg_end(msg, hdr); |
287 | 290 | ||
288 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 291 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
292 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
289 | 293 | ||
290 | return 0; | 294 | return 0; |
291 | 295 | ||
@@ -318,7 +322,8 @@ int nfc_genl_device_added(struct nfc_dev *dev) | |||
318 | 322 | ||
319 | genlmsg_end(msg, hdr); | 323 | genlmsg_end(msg, hdr); |
320 | 324 | ||
321 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 325 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
326 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
322 | 327 | ||
323 | return 0; | 328 | return 0; |
324 | 329 | ||
@@ -348,7 +353,8 @@ int nfc_genl_device_removed(struct nfc_dev *dev) | |||
348 | 353 | ||
349 | genlmsg_end(msg, hdr); | 354 | genlmsg_end(msg, hdr); |
350 | 355 | ||
351 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 356 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
357 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
352 | 358 | ||
353 | return 0; | 359 | return 0; |
354 | 360 | ||
@@ -414,7 +420,8 @@ int nfc_genl_llc_send_sdres(struct nfc_dev *dev, struct hlist_head *sdres_list) | |||
414 | 420 | ||
415 | genlmsg_end(msg, hdr); | 421 | genlmsg_end(msg, hdr); |
416 | 422 | ||
417 | return genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_ATOMIC); | 423 | return genlmsg_multicast(&nfc_genl_family, msg, 0, |
424 | nfc_genl_event_mcgrp.id, GFP_ATOMIC); | ||
418 | 425 | ||
419 | nla_put_failure: | 426 | nla_put_failure: |
420 | genlmsg_cancel(msg, hdr); | 427 | genlmsg_cancel(msg, hdr); |
@@ -448,7 +455,8 @@ int nfc_genl_se_added(struct nfc_dev *dev, u32 se_idx, u16 type) | |||
448 | 455 | ||
449 | genlmsg_end(msg, hdr); | 456 | genlmsg_end(msg, hdr); |
450 | 457 | ||
451 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 458 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
459 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
452 | 460 | ||
453 | return 0; | 461 | return 0; |
454 | 462 | ||
@@ -479,7 +487,8 @@ int nfc_genl_se_removed(struct nfc_dev *dev, u32 se_idx) | |||
479 | 487 | ||
480 | genlmsg_end(msg, hdr); | 488 | genlmsg_end(msg, hdr); |
481 | 489 | ||
482 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 490 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
491 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
483 | 492 | ||
484 | return 0; | 493 | return 0; |
485 | 494 | ||
@@ -600,7 +609,8 @@ int nfc_genl_dep_link_up_event(struct nfc_dev *dev, u32 target_idx, | |||
600 | 609 | ||
601 | dev->dep_link_up = true; | 610 | dev->dep_link_up = true; |
602 | 611 | ||
603 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_ATOMIC); | 612 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
613 | nfc_genl_event_mcgrp.id, GFP_ATOMIC); | ||
604 | 614 | ||
605 | return 0; | 615 | return 0; |
606 | 616 | ||
@@ -632,7 +642,8 @@ int nfc_genl_dep_link_down_event(struct nfc_dev *dev) | |||
632 | 642 | ||
633 | genlmsg_end(msg, hdr); | 643 | genlmsg_end(msg, hdr); |
634 | 644 | ||
635 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_ATOMIC); | 645 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
646 | nfc_genl_event_mcgrp.id, GFP_ATOMIC); | ||
636 | 647 | ||
637 | return 0; | 648 | return 0; |
638 | 649 | ||
@@ -1137,7 +1148,8 @@ int nfc_genl_fw_download_done(struct nfc_dev *dev, const char *firmware_name, | |||
1137 | 1148 | ||
1138 | genlmsg_end(msg, hdr); | 1149 | genlmsg_end(msg, hdr); |
1139 | 1150 | ||
1140 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 1151 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
1152 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
1141 | 1153 | ||
1142 | return 0; | 1154 | return 0; |
1143 | 1155 | ||
@@ -1308,7 +1320,8 @@ static void se_io_cb(void *context, u8 *apdu, size_t apdu_len, int err) | |||
1308 | 1320 | ||
1309 | genlmsg_end(msg, hdr); | 1321 | genlmsg_end(msg, hdr); |
1310 | 1322 | ||
1311 | genlmsg_multicast(msg, 0, nfc_genl_event_mcgrp.id, GFP_KERNEL); | 1323 | genlmsg_multicast(&nfc_genl_family, msg, 0, |
1324 | nfc_genl_event_mcgrp.id, GFP_KERNEL); | ||
1312 | 1325 | ||
1313 | kfree(ctx); | 1326 | kfree(ctx); |
1314 | 1327 | ||
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c index 3e2bb15fd717..5c19846b1d2a 100644 --- a/net/openvswitch/datapath.c +++ b/net/openvswitch/datapath.c | |||
@@ -61,10 +61,11 @@ | |||
61 | 61 | ||
62 | int ovs_net_id __read_mostly; | 62 | int ovs_net_id __read_mostly; |
63 | 63 | ||
64 | static void ovs_notify(struct sk_buff *skb, struct genl_info *info, | 64 | static void ovs_notify(struct genl_family *family, |
65 | struct sk_buff *skb, struct genl_info *info, | ||
65 | struct genl_multicast_group *grp) | 66 | struct genl_multicast_group *grp) |
66 | { | 67 | { |
67 | genl_notify(skb, genl_info_net(info), info->snd_portid, | 68 | genl_notify(family, skb, genl_info_net(info), info->snd_portid, |
68 | grp->id, info->nlhdr, GFP_KERNEL); | 69 | grp->id, info->nlhdr, GFP_KERNEL); |
69 | } | 70 | } |
70 | 71 | ||
@@ -877,9 +878,10 @@ static int ovs_flow_cmd_new_or_set(struct sk_buff *skb, struct genl_info *info) | |||
877 | ovs_unlock(); | 878 | ovs_unlock(); |
878 | 879 | ||
879 | if (!IS_ERR(reply)) | 880 | if (!IS_ERR(reply)) |
880 | ovs_notify(reply, info, &ovs_dp_flow_multicast_group); | 881 | ovs_notify(&dp_flow_genl_family, reply, info, |
882 | &ovs_dp_flow_multicast_group); | ||
881 | else | 883 | else |
882 | genl_set_err(sock_net(skb->sk), 0, | 884 | genl_set_err(&dp_flow_genl_family, sock_net(skb->sk), 0, |
883 | ovs_dp_flow_multicast_group.id, PTR_ERR(reply)); | 885 | ovs_dp_flow_multicast_group.id, PTR_ERR(reply)); |
884 | return 0; | 886 | return 0; |
885 | 887 | ||
@@ -990,7 +992,8 @@ static int ovs_flow_cmd_del(struct sk_buff *skb, struct genl_info *info) | |||
990 | ovs_flow_free(flow, true); | 992 | ovs_flow_free(flow, true); |
991 | ovs_unlock(); | 993 | ovs_unlock(); |
992 | 994 | ||
993 | ovs_notify(reply, info, &ovs_dp_flow_multicast_group); | 995 | ovs_notify(&dp_flow_genl_family, reply, info, |
996 | &ovs_dp_flow_multicast_group); | ||
994 | return 0; | 997 | return 0; |
995 | unlock: | 998 | unlock: |
996 | ovs_unlock(); | 999 | ovs_unlock(); |
@@ -1237,7 +1240,8 @@ static int ovs_dp_cmd_new(struct sk_buff *skb, struct genl_info *info) | |||
1237 | 1240 | ||
1238 | ovs_unlock(); | 1241 | ovs_unlock(); |
1239 | 1242 | ||
1240 | ovs_notify(reply, info, &ovs_dp_datapath_multicast_group); | 1243 | ovs_notify(&dp_datapath_genl_family, reply, info, |
1244 | &ovs_dp_datapath_multicast_group); | ||
1241 | return 0; | 1245 | return 0; |
1242 | 1246 | ||
1243 | err_destroy_local_port: | 1247 | err_destroy_local_port: |
@@ -1302,7 +1306,8 @@ static int ovs_dp_cmd_del(struct sk_buff *skb, struct genl_info *info) | |||
1302 | __dp_destroy(dp); | 1306 | __dp_destroy(dp); |
1303 | ovs_unlock(); | 1307 | ovs_unlock(); |
1304 | 1308 | ||
1305 | ovs_notify(reply, info, &ovs_dp_datapath_multicast_group); | 1309 | ovs_notify(&dp_datapath_genl_family, reply, info, |
1310 | &ovs_dp_datapath_multicast_group); | ||
1306 | 1311 | ||
1307 | return 0; | 1312 | return 0; |
1308 | unlock: | 1313 | unlock: |
@@ -1326,14 +1331,15 @@ static int ovs_dp_cmd_set(struct sk_buff *skb, struct genl_info *info) | |||
1326 | info->snd_seq, OVS_DP_CMD_NEW); | 1331 | info->snd_seq, OVS_DP_CMD_NEW); |
1327 | if (IS_ERR(reply)) { | 1332 | if (IS_ERR(reply)) { |
1328 | err = PTR_ERR(reply); | 1333 | err = PTR_ERR(reply); |
1329 | genl_set_err(sock_net(skb->sk), 0, | 1334 | genl_set_err(&dp_datapath_genl_family, sock_net(skb->sk), 0, |
1330 | ovs_dp_datapath_multicast_group.id, err); | 1335 | ovs_dp_datapath_multicast_group.id, err); |
1331 | err = 0; | 1336 | err = 0; |
1332 | goto unlock; | 1337 | goto unlock; |
1333 | } | 1338 | } |
1334 | 1339 | ||
1335 | ovs_unlock(); | 1340 | ovs_unlock(); |
1336 | ovs_notify(reply, info, &ovs_dp_datapath_multicast_group); | 1341 | ovs_notify(&dp_datapath_genl_family, reply, info, |
1342 | &ovs_dp_datapath_multicast_group); | ||
1337 | 1343 | ||
1338 | return 0; | 1344 | return 0; |
1339 | unlock: | 1345 | unlock: |
@@ -1425,7 +1431,7 @@ static const struct nla_policy vport_policy[OVS_VPORT_ATTR_MAX + 1] = { | |||
1425 | [OVS_VPORT_ATTR_OPTIONS] = { .type = NLA_NESTED }, | 1431 | [OVS_VPORT_ATTR_OPTIONS] = { .type = NLA_NESTED }, |
1426 | }; | 1432 | }; |
1427 | 1433 | ||
1428 | static struct genl_family dp_vport_genl_family = { | 1434 | struct genl_family dp_vport_genl_family = { |
1429 | .id = GENL_ID_GENERATE, | 1435 | .id = GENL_ID_GENERATE, |
1430 | .hdrsize = sizeof(struct ovs_header), | 1436 | .hdrsize = sizeof(struct ovs_header), |
1431 | .name = OVS_VPORT_FAMILY, | 1437 | .name = OVS_VPORT_FAMILY, |
@@ -1595,7 +1601,8 @@ static int ovs_vport_cmd_new(struct sk_buff *skb, struct genl_info *info) | |||
1595 | goto exit_unlock; | 1601 | goto exit_unlock; |
1596 | } | 1602 | } |
1597 | 1603 | ||
1598 | ovs_notify(reply, info, &ovs_dp_vport_multicast_group); | 1604 | ovs_notify(&dp_vport_genl_family, reply, info, |
1605 | &ovs_dp_vport_multicast_group); | ||
1599 | 1606 | ||
1600 | exit_unlock: | 1607 | exit_unlock: |
1601 | ovs_unlock(); | 1608 | ovs_unlock(); |
@@ -1642,7 +1649,8 @@ static int ovs_vport_cmd_set(struct sk_buff *skb, struct genl_info *info) | |||
1642 | BUG_ON(err < 0); | 1649 | BUG_ON(err < 0); |
1643 | 1650 | ||
1644 | ovs_unlock(); | 1651 | ovs_unlock(); |
1645 | ovs_notify(reply, info, &ovs_dp_vport_multicast_group); | 1652 | ovs_notify(&dp_vport_genl_family, reply, info, |
1653 | &ovs_dp_vport_multicast_group); | ||
1646 | return 0; | 1654 | return 0; |
1647 | 1655 | ||
1648 | exit_free: | 1656 | exit_free: |
@@ -1679,7 +1687,8 @@ static int ovs_vport_cmd_del(struct sk_buff *skb, struct genl_info *info) | |||
1679 | err = 0; | 1687 | err = 0; |
1680 | ovs_dp_detach_port(vport); | 1688 | ovs_dp_detach_port(vport); |
1681 | 1689 | ||
1682 | ovs_notify(reply, info, &ovs_dp_vport_multicast_group); | 1690 | ovs_notify(&dp_vport_genl_family, reply, info, |
1691 | &ovs_dp_vport_multicast_group); | ||
1683 | 1692 | ||
1684 | exit_unlock: | 1693 | exit_unlock: |
1685 | ovs_unlock(); | 1694 | ovs_unlock(); |
diff --git a/net/openvswitch/datapath.h b/net/openvswitch/datapath.h index d3d14a58aa91..4067ea41be28 100644 --- a/net/openvswitch/datapath.h +++ b/net/openvswitch/datapath.h | |||
@@ -177,6 +177,7 @@ static inline struct vport *ovs_vport_ovsl(const struct datapath *dp, int port_n | |||
177 | } | 177 | } |
178 | 178 | ||
179 | extern struct notifier_block ovs_dp_device_notifier; | 179 | extern struct notifier_block ovs_dp_device_notifier; |
180 | extern struct genl_family dp_vport_genl_family; | ||
180 | extern struct genl_multicast_group ovs_dp_vport_multicast_group; | 181 | extern struct genl_multicast_group ovs_dp_vport_multicast_group; |
181 | 182 | ||
182 | void ovs_dp_process_received_packet(struct vport *, struct sk_buff *); | 183 | void ovs_dp_process_received_packet(struct vport *, struct sk_buff *); |
diff --git a/net/openvswitch/dp_notify.c b/net/openvswitch/dp_notify.c index 3d55ead6095c..f4b66c84ea0b 100644 --- a/net/openvswitch/dp_notify.c +++ b/net/openvswitch/dp_notify.c | |||
@@ -34,13 +34,14 @@ static void dp_detach_port_notify(struct vport *vport) | |||
34 | OVS_VPORT_CMD_DEL); | 34 | OVS_VPORT_CMD_DEL); |
35 | ovs_dp_detach_port(vport); | 35 | ovs_dp_detach_port(vport); |
36 | if (IS_ERR(notify)) { | 36 | if (IS_ERR(notify)) { |
37 | genl_set_err(ovs_dp_get_net(dp), 0, | 37 | genl_set_err(&dp_vport_genl_family, ovs_dp_get_net(dp), 0, |
38 | ovs_dp_vport_multicast_group.id, | 38 | ovs_dp_vport_multicast_group.id, |
39 | PTR_ERR(notify)); | 39 | PTR_ERR(notify)); |
40 | return; | 40 | return; |
41 | } | 41 | } |
42 | 42 | ||
43 | genlmsg_multicast_netns(ovs_dp_get_net(dp), notify, 0, | 43 | genlmsg_multicast_netns(&dp_vport_genl_family, |
44 | ovs_dp_get_net(dp), notify, 0, | ||
44 | ovs_dp_vport_multicast_group.id, | 45 | ovs_dp_vport_multicast_group.id, |
45 | GFP_KERNEL); | 46 | GFP_KERNEL); |
46 | } | 47 | } |
diff --git a/net/wimax/op-msg.c b/net/wimax/op-msg.c index ff19cbeaf607..f37dd3c5576d 100644 --- a/net/wimax/op-msg.c +++ b/net/wimax/op-msg.c | |||
@@ -279,7 +279,8 @@ int wimax_msg_send(struct wimax_dev *wimax_dev, struct sk_buff *skb) | |||
279 | 279 | ||
280 | d_printf(1, dev, "CTX: wimax msg, %zu bytes\n", size); | 280 | d_printf(1, dev, "CTX: wimax msg, %zu bytes\n", size); |
281 | d_dump(2, dev, msg, size); | 281 | d_dump(2, dev, msg, size); |
282 | genlmsg_multicast(skb, 0, wimax_gnl_mcg.id, GFP_KERNEL); | 282 | genlmsg_multicast(&wimax_gnl_family, skb, 0, |
283 | wimax_gnl_mcg.id, GFP_KERNEL); | ||
283 | d_printf(1, dev, "CTX: genl multicast done\n"); | 284 | d_printf(1, dev, "CTX: genl multicast done\n"); |
284 | return 0; | 285 | return 0; |
285 | } | 286 | } |
diff --git a/net/wimax/stack.c b/net/wimax/stack.c index 6328afe90319..18888748e699 100644 --- a/net/wimax/stack.c +++ b/net/wimax/stack.c | |||
@@ -177,7 +177,8 @@ int wimax_gnl_re_state_change_send( | |||
177 | goto out; | 177 | goto out; |
178 | } | 178 | } |
179 | genlmsg_end(report_skb, header); | 179 | genlmsg_end(report_skb, header); |
180 | genlmsg_multicast(report_skb, 0, wimax_gnl_mcg.id, GFP_KERNEL); | 180 | genlmsg_multicast(&wimax_gnl_family, report_skb, 0, |
181 | wimax_gnl_mcg.id, GFP_KERNEL); | ||
181 | out: | 182 | out: |
182 | d_fnend(3, dev, "(wimax_dev %p report_skb %p) = %d\n", | 183 | d_fnend(3, dev, "(wimax_dev %p report_skb %p) = %d\n", |
183 | wimax_dev, report_skb, result); | 184 | wimax_dev, report_skb, result); |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 1b6c5dd4dccf..f20edfd2e1f0 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -6868,7 +6868,7 @@ void cfg80211_testmode_event(struct sk_buff *skb, gfp_t gfp) | |||
6868 | 6868 | ||
6869 | nla_nest_end(skb, data); | 6869 | nla_nest_end(skb, data); |
6870 | genlmsg_end(skb, hdr); | 6870 | genlmsg_end(skb, hdr); |
6871 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), skb, 0, | 6871 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), skb, 0, |
6872 | nl80211_testmode_mcgrp.id, gfp); | 6872 | nl80211_testmode_mcgrp.id, gfp); |
6873 | } | 6873 | } |
6874 | EXPORT_SYMBOL(cfg80211_testmode_event); | 6874 | EXPORT_SYMBOL(cfg80211_testmode_event); |
@@ -9597,7 +9597,7 @@ void nl80211_notify_dev_rename(struct cfg80211_registered_device *rdev) | |||
9597 | return; | 9597 | return; |
9598 | } | 9598 | } |
9599 | 9599 | ||
9600 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9600 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9601 | nl80211_config_mcgrp.id, GFP_KERNEL); | 9601 | nl80211_config_mcgrp.id, GFP_KERNEL); |
9602 | } | 9602 | } |
9603 | 9603 | ||
@@ -9707,7 +9707,7 @@ void nl80211_send_scan_start(struct cfg80211_registered_device *rdev, | |||
9707 | return; | 9707 | return; |
9708 | } | 9708 | } |
9709 | 9709 | ||
9710 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9710 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9711 | nl80211_scan_mcgrp.id, GFP_KERNEL); | 9711 | nl80211_scan_mcgrp.id, GFP_KERNEL); |
9712 | } | 9712 | } |
9713 | 9713 | ||
@@ -9726,7 +9726,7 @@ void nl80211_send_scan_done(struct cfg80211_registered_device *rdev, | |||
9726 | return; | 9726 | return; |
9727 | } | 9727 | } |
9728 | 9728 | ||
9729 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9729 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9730 | nl80211_scan_mcgrp.id, GFP_KERNEL); | 9730 | nl80211_scan_mcgrp.id, GFP_KERNEL); |
9731 | } | 9731 | } |
9732 | 9732 | ||
@@ -9745,7 +9745,7 @@ void nl80211_send_scan_aborted(struct cfg80211_registered_device *rdev, | |||
9745 | return; | 9745 | return; |
9746 | } | 9746 | } |
9747 | 9747 | ||
9748 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9748 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9749 | nl80211_scan_mcgrp.id, GFP_KERNEL); | 9749 | nl80211_scan_mcgrp.id, GFP_KERNEL); |
9750 | } | 9750 | } |
9751 | 9751 | ||
@@ -9764,7 +9764,7 @@ void nl80211_send_sched_scan_results(struct cfg80211_registered_device *rdev, | |||
9764 | return; | 9764 | return; |
9765 | } | 9765 | } |
9766 | 9766 | ||
9767 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9767 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9768 | nl80211_scan_mcgrp.id, GFP_KERNEL); | 9768 | nl80211_scan_mcgrp.id, GFP_KERNEL); |
9769 | } | 9769 | } |
9770 | 9770 | ||
@@ -9782,7 +9782,7 @@ void nl80211_send_sched_scan(struct cfg80211_registered_device *rdev, | |||
9782 | return; | 9782 | return; |
9783 | } | 9783 | } |
9784 | 9784 | ||
9785 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9785 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9786 | nl80211_scan_mcgrp.id, GFP_KERNEL); | 9786 | nl80211_scan_mcgrp.id, GFP_KERNEL); |
9787 | } | 9787 | } |
9788 | 9788 | ||
@@ -9837,8 +9837,8 @@ void nl80211_send_reg_change_event(struct regulatory_request *request) | |||
9837 | genlmsg_end(msg, hdr); | 9837 | genlmsg_end(msg, hdr); |
9838 | 9838 | ||
9839 | rcu_read_lock(); | 9839 | rcu_read_lock(); |
9840 | genlmsg_multicast_allns(msg, 0, nl80211_regulatory_mcgrp.id, | 9840 | genlmsg_multicast_allns(&nl80211_fam, msg, 0, |
9841 | GFP_ATOMIC); | 9841 | nl80211_regulatory_mcgrp.id, GFP_ATOMIC); |
9842 | rcu_read_unlock(); | 9842 | rcu_read_unlock(); |
9843 | 9843 | ||
9844 | return; | 9844 | return; |
@@ -9873,7 +9873,7 @@ static void nl80211_send_mlme_event(struct cfg80211_registered_device *rdev, | |||
9873 | 9873 | ||
9874 | genlmsg_end(msg, hdr); | 9874 | genlmsg_end(msg, hdr); |
9875 | 9875 | ||
9876 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9876 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9877 | nl80211_mlme_mcgrp.id, gfp); | 9877 | nl80211_mlme_mcgrp.id, gfp); |
9878 | return; | 9878 | return; |
9879 | 9879 | ||
@@ -9961,7 +9961,7 @@ static void nl80211_send_mlme_timeout(struct cfg80211_registered_device *rdev, | |||
9961 | 9961 | ||
9962 | genlmsg_end(msg, hdr); | 9962 | genlmsg_end(msg, hdr); |
9963 | 9963 | ||
9964 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 9964 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
9965 | nl80211_mlme_mcgrp.id, gfp); | 9965 | nl80211_mlme_mcgrp.id, gfp); |
9966 | return; | 9966 | return; |
9967 | 9967 | ||
@@ -10017,7 +10017,7 @@ void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, | |||
10017 | 10017 | ||
10018 | genlmsg_end(msg, hdr); | 10018 | genlmsg_end(msg, hdr); |
10019 | 10019 | ||
10020 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10020 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10021 | nl80211_mlme_mcgrp.id, gfp); | 10021 | nl80211_mlme_mcgrp.id, gfp); |
10022 | return; | 10022 | return; |
10023 | 10023 | ||
@@ -10056,7 +10056,7 @@ void nl80211_send_roamed(struct cfg80211_registered_device *rdev, | |||
10056 | 10056 | ||
10057 | genlmsg_end(msg, hdr); | 10057 | genlmsg_end(msg, hdr); |
10058 | 10058 | ||
10059 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10059 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10060 | nl80211_mlme_mcgrp.id, gfp); | 10060 | nl80211_mlme_mcgrp.id, gfp); |
10061 | return; | 10061 | return; |
10062 | 10062 | ||
@@ -10094,7 +10094,7 @@ void nl80211_send_disconnected(struct cfg80211_registered_device *rdev, | |||
10094 | 10094 | ||
10095 | genlmsg_end(msg, hdr); | 10095 | genlmsg_end(msg, hdr); |
10096 | 10096 | ||
10097 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10097 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10098 | nl80211_mlme_mcgrp.id, GFP_KERNEL); | 10098 | nl80211_mlme_mcgrp.id, GFP_KERNEL); |
10099 | return; | 10099 | return; |
10100 | 10100 | ||
@@ -10128,7 +10128,7 @@ void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev, | |||
10128 | 10128 | ||
10129 | genlmsg_end(msg, hdr); | 10129 | genlmsg_end(msg, hdr); |
10130 | 10130 | ||
10131 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10131 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10132 | nl80211_mlme_mcgrp.id, gfp); | 10132 | nl80211_mlme_mcgrp.id, gfp); |
10133 | return; | 10133 | return; |
10134 | 10134 | ||
@@ -10169,7 +10169,7 @@ void cfg80211_notify_new_peer_candidate(struct net_device *dev, const u8 *addr, | |||
10169 | 10169 | ||
10170 | genlmsg_end(msg, hdr); | 10170 | genlmsg_end(msg, hdr); |
10171 | 10171 | ||
10172 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10172 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10173 | nl80211_mlme_mcgrp.id, gfp); | 10173 | nl80211_mlme_mcgrp.id, gfp); |
10174 | return; | 10174 | return; |
10175 | 10175 | ||
@@ -10208,7 +10208,7 @@ void nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev, | |||
10208 | 10208 | ||
10209 | genlmsg_end(msg, hdr); | 10209 | genlmsg_end(msg, hdr); |
10210 | 10210 | ||
10211 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10211 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10212 | nl80211_mlme_mcgrp.id, gfp); | 10212 | nl80211_mlme_mcgrp.id, gfp); |
10213 | return; | 10213 | return; |
10214 | 10214 | ||
@@ -10261,8 +10261,8 @@ void nl80211_send_beacon_hint_event(struct wiphy *wiphy, | |||
10261 | genlmsg_end(msg, hdr); | 10261 | genlmsg_end(msg, hdr); |
10262 | 10262 | ||
10263 | rcu_read_lock(); | 10263 | rcu_read_lock(); |
10264 | genlmsg_multicast_allns(msg, 0, nl80211_regulatory_mcgrp.id, | 10264 | genlmsg_multicast_allns(&nl80211_fam, msg, 0, |
10265 | GFP_ATOMIC); | 10265 | nl80211_regulatory_mcgrp.id, GFP_ATOMIC); |
10266 | rcu_read_unlock(); | 10266 | rcu_read_unlock(); |
10267 | 10267 | ||
10268 | return; | 10268 | return; |
@@ -10307,7 +10307,7 @@ static void nl80211_send_remain_on_chan_event( | |||
10307 | 10307 | ||
10308 | genlmsg_end(msg, hdr); | 10308 | genlmsg_end(msg, hdr); |
10309 | 10309 | ||
10310 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10310 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10311 | nl80211_mlme_mcgrp.id, gfp); | 10311 | nl80211_mlme_mcgrp.id, gfp); |
10312 | return; | 10312 | return; |
10313 | 10313 | ||
@@ -10362,7 +10362,7 @@ void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr, | |||
10362 | return; | 10362 | return; |
10363 | } | 10363 | } |
10364 | 10364 | ||
10365 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10365 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10366 | nl80211_mlme_mcgrp.id, gfp); | 10366 | nl80211_mlme_mcgrp.id, gfp); |
10367 | } | 10367 | } |
10368 | EXPORT_SYMBOL(cfg80211_new_sta); | 10368 | EXPORT_SYMBOL(cfg80211_new_sta); |
@@ -10392,7 +10392,7 @@ void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp) | |||
10392 | 10392 | ||
10393 | genlmsg_end(msg, hdr); | 10393 | genlmsg_end(msg, hdr); |
10394 | 10394 | ||
10395 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10395 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10396 | nl80211_mlme_mcgrp.id, gfp); | 10396 | nl80211_mlme_mcgrp.id, gfp); |
10397 | return; | 10397 | return; |
10398 | 10398 | ||
@@ -10428,7 +10428,7 @@ void cfg80211_conn_failed(struct net_device *dev, const u8 *mac_addr, | |||
10428 | 10428 | ||
10429 | genlmsg_end(msg, hdr); | 10429 | genlmsg_end(msg, hdr); |
10430 | 10430 | ||
10431 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10431 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10432 | nl80211_mlme_mcgrp.id, gfp); | 10432 | nl80211_mlme_mcgrp.id, gfp); |
10433 | return; | 10433 | return; |
10434 | 10434 | ||
@@ -10590,7 +10590,7 @@ void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie, | |||
10590 | 10590 | ||
10591 | genlmsg_end(msg, hdr); | 10591 | genlmsg_end(msg, hdr); |
10592 | 10592 | ||
10593 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10593 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10594 | nl80211_mlme_mcgrp.id, gfp); | 10594 | nl80211_mlme_mcgrp.id, gfp); |
10595 | return; | 10595 | return; |
10596 | 10596 | ||
@@ -10639,7 +10639,7 @@ void cfg80211_cqm_rssi_notify(struct net_device *dev, | |||
10639 | 10639 | ||
10640 | genlmsg_end(msg, hdr); | 10640 | genlmsg_end(msg, hdr); |
10641 | 10641 | ||
10642 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10642 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10643 | nl80211_mlme_mcgrp.id, gfp); | 10643 | nl80211_mlme_mcgrp.id, gfp); |
10644 | return; | 10644 | return; |
10645 | 10645 | ||
@@ -10684,7 +10684,7 @@ static void nl80211_gtk_rekey_notify(struct cfg80211_registered_device *rdev, | |||
10684 | 10684 | ||
10685 | genlmsg_end(msg, hdr); | 10685 | genlmsg_end(msg, hdr); |
10686 | 10686 | ||
10687 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10687 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10688 | nl80211_mlme_mcgrp.id, gfp); | 10688 | nl80211_mlme_mcgrp.id, gfp); |
10689 | return; | 10689 | return; |
10690 | 10690 | ||
@@ -10742,7 +10742,7 @@ nl80211_pmksa_candidate_notify(struct cfg80211_registered_device *rdev, | |||
10742 | 10742 | ||
10743 | genlmsg_end(msg, hdr); | 10743 | genlmsg_end(msg, hdr); |
10744 | 10744 | ||
10745 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10745 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10746 | nl80211_mlme_mcgrp.id, gfp); | 10746 | nl80211_mlme_mcgrp.id, gfp); |
10747 | return; | 10747 | return; |
10748 | 10748 | ||
@@ -10789,7 +10789,7 @@ static void nl80211_ch_switch_notify(struct cfg80211_registered_device *rdev, | |||
10789 | 10789 | ||
10790 | genlmsg_end(msg, hdr); | 10790 | genlmsg_end(msg, hdr); |
10791 | 10791 | ||
10792 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10792 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10793 | nl80211_mlme_mcgrp.id, gfp); | 10793 | nl80211_mlme_mcgrp.id, gfp); |
10794 | return; | 10794 | return; |
10795 | 10795 | ||
@@ -10866,7 +10866,7 @@ void cfg80211_cqm_txe_notify(struct net_device *dev, | |||
10866 | 10866 | ||
10867 | genlmsg_end(msg, hdr); | 10867 | genlmsg_end(msg, hdr); |
10868 | 10868 | ||
10869 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10869 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10870 | nl80211_mlme_mcgrp.id, gfp); | 10870 | nl80211_mlme_mcgrp.id, gfp); |
10871 | return; | 10871 | return; |
10872 | 10872 | ||
@@ -10915,7 +10915,7 @@ nl80211_radar_notify(struct cfg80211_registered_device *rdev, | |||
10915 | 10915 | ||
10916 | genlmsg_end(msg, hdr); | 10916 | genlmsg_end(msg, hdr); |
10917 | 10917 | ||
10918 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10918 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10919 | nl80211_mlme_mcgrp.id, gfp); | 10919 | nl80211_mlme_mcgrp.id, gfp); |
10920 | return; | 10920 | return; |
10921 | 10921 | ||
@@ -10962,7 +10962,7 @@ void cfg80211_cqm_pktloss_notify(struct net_device *dev, | |||
10962 | 10962 | ||
10963 | genlmsg_end(msg, hdr); | 10963 | genlmsg_end(msg, hdr); |
10964 | 10964 | ||
10965 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 10965 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
10966 | nl80211_mlme_mcgrp.id, gfp); | 10966 | nl80211_mlme_mcgrp.id, gfp); |
10967 | return; | 10967 | return; |
10968 | 10968 | ||
@@ -11002,7 +11002,7 @@ void cfg80211_probe_status(struct net_device *dev, const u8 *addr, | |||
11002 | 11002 | ||
11003 | genlmsg_end(msg, hdr); | 11003 | genlmsg_end(msg, hdr); |
11004 | 11004 | ||
11005 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 11005 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
11006 | nl80211_mlme_mcgrp.id, gfp); | 11006 | nl80211_mlme_mcgrp.id, gfp); |
11007 | return; | 11007 | return; |
11008 | 11008 | ||
@@ -11154,7 +11154,7 @@ void cfg80211_report_wowlan_wakeup(struct wireless_dev *wdev, | |||
11154 | 11154 | ||
11155 | genlmsg_end(msg, hdr); | 11155 | genlmsg_end(msg, hdr); |
11156 | 11156 | ||
11157 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 11157 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
11158 | nl80211_mlme_mcgrp.id, gfp); | 11158 | nl80211_mlme_mcgrp.id, gfp); |
11159 | return; | 11159 | return; |
11160 | 11160 | ||
@@ -11196,7 +11196,7 @@ void cfg80211_tdls_oper_request(struct net_device *dev, const u8 *peer, | |||
11196 | 11196 | ||
11197 | genlmsg_end(msg, hdr); | 11197 | genlmsg_end(msg, hdr); |
11198 | 11198 | ||
11199 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 11199 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
11200 | nl80211_mlme_mcgrp.id, gfp); | 11200 | nl80211_mlme_mcgrp.id, gfp); |
11201 | return; | 11201 | return; |
11202 | 11202 | ||
@@ -11279,7 +11279,7 @@ void cfg80211_ft_event(struct net_device *netdev, | |||
11279 | 11279 | ||
11280 | genlmsg_end(msg, hdr); | 11280 | genlmsg_end(msg, hdr); |
11281 | 11281 | ||
11282 | genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0, | 11282 | genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0, |
11283 | nl80211_mlme_mcgrp.id, GFP_KERNEL); | 11283 | nl80211_mlme_mcgrp.id, GFP_KERNEL); |
11284 | } | 11284 | } |
11285 | EXPORT_SYMBOL(cfg80211_ft_event); | 11285 | EXPORT_SYMBOL(cfg80211_ft_event); |