]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/3.4.57/nl80211-fix-mgmt-tx-status-and-testmode-reporting-for-netns.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 3.4.57 / nl80211-fix-mgmt-tx-status-and-testmode-reporting-for-netns.patch
1 From a0ec570f4f69c4cb700d743a915096c2c8f56a99 Mon Sep 17 00:00:00 2001
2 From: Michal Kazior <michal.kazior@tieto.com>
3 Date: Tue, 25 Jun 2013 09:17:17 +0200
4 Subject: nl80211: fix mgmt tx status and testmode reporting for netns
5
6 From: Michal Kazior <michal.kazior@tieto.com>
7
8 commit a0ec570f4f69c4cb700d743a915096c2c8f56a99 upstream.
9
10 These two events were sent to the default network
11 namespace.
12
13 This caused AP mode in a non-default netns to not
14 work correctly. Mgmt tx status was multicasted to
15 a different (default) netns instead of the one the
16 AP was in.
17
18 Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
19 Signed-off-by: Johannes Berg <johannes.berg@intel.com>
20 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
21
22 ---
23 net/wireless/nl80211.c | 7 +++++--
24 1 file changed, 5 insertions(+), 2 deletions(-)
25
26 --- a/net/wireless/nl80211.c
27 +++ b/net/wireless/nl80211.c
28 @@ -5081,12 +5081,14 @@ EXPORT_SYMBOL(cfg80211_testmode_alloc_ev
29
30 void cfg80211_testmode_event(struct sk_buff *skb, gfp_t gfp)
31 {
32 + struct cfg80211_registered_device *rdev = ((void **)skb->cb)[0];
33 void *hdr = ((void **)skb->cb)[1];
34 struct nlattr *data = ((void **)skb->cb)[2];
35
36 nla_nest_end(skb, data);
37 genlmsg_end(skb, hdr);
38 - genlmsg_multicast(skb, 0, nl80211_testmode_mcgrp.id, gfp);
39 + genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), skb, 0,
40 + nl80211_testmode_mcgrp.id, gfp);
41 }
42 EXPORT_SYMBOL(cfg80211_testmode_event);
43 #endif
44 @@ -7768,7 +7770,8 @@ void nl80211_send_mgmt_tx_status(struct
45
46 genlmsg_end(msg, hdr);
47
48 - genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, gfp);
49 + genlmsg_multicast_netns(wiphy_net(&rdev->wiphy), msg, 0,
50 + nl80211_mlme_mcgrp.id, gfp);
51 return;
52
53 nla_put_failure: