aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/core/drop_monitor.c3
-rw-r--r--net/hsr/hsr_netlink.c6
-rw-r--r--net/ieee802154/netlink.c2
-rw-r--r--net/netlink/genetlink.c12
-rw-r--r--net/nfc/netlink.c39
-rw-r--r--net/openvswitch/datapath.c35
-rw-r--r--net/openvswitch/datapath.h1
-rw-r--r--net/openvswitch/dp_notify.c5
-rw-r--r--net/wimax/op-msg.c3
-rw-r--r--net/wimax/stack.c3
-rw-r--r--net/wireless/nl80211.c70
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);
74out: 74out:
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
996int genlmsg_multicast_allns(struct sk_buff *skb, u32 portid, unsigned int group, 997int 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}
1001EXPORT_SYMBOL(genlmsg_multicast_allns); 1002EXPORT_SYMBOL(genlmsg_multicast_allns);
1002 1003
1003void genl_notify(struct sk_buff *skb, struct net *net, u32 portid, u32 group, 1004void 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
199nla_put_failure: 200nla_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
419nla_put_failure: 426nla_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
62int ovs_net_id __read_mostly; 62int ovs_net_id __read_mostly;
63 63
64static void ovs_notify(struct sk_buff *skb, struct genl_info *info, 64static 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;
995unlock: 998unlock:
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
1243err_destroy_local_port: 1247err_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;
1308unlock: 1313unlock:
@@ -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;
1339unlock: 1345unlock:
@@ -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
1428static struct genl_family dp_vport_genl_family = { 1434struct 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
1600exit_unlock: 1607exit_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
1648exit_free: 1656exit_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
1684exit_unlock: 1693exit_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
179extern struct notifier_block ovs_dp_device_notifier; 179extern struct notifier_block ovs_dp_device_notifier;
180extern struct genl_family dp_vport_genl_family;
180extern struct genl_multicast_group ovs_dp_vport_multicast_group; 181extern struct genl_multicast_group ovs_dp_vport_multicast_group;
181 182
182void ovs_dp_process_received_packet(struct vport *, struct sk_buff *); 183void 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);
181out: 182out:
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}
6874EXPORT_SYMBOL(cfg80211_testmode_event); 6874EXPORT_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}
10368EXPORT_SYMBOL(cfg80211_new_sta); 10368EXPORT_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}
11285EXPORT_SYMBOL(cfg80211_ft_event); 11285EXPORT_SYMBOL(cfg80211_ft_event);