summaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-04-18 23:42:19 +0200
committerJohannes Berg <johannes.berg@intel.com>2013-04-18 23:44:41 +0200
commit1b737f88dc1b05cf571e96d42f748aaff6df1eb5 (patch)
tree2b5d99e1727a02cb681ee80a221dfd41cadea483 /net/mac80211/rx.c
parentmac80211: optimize minstrel_ewma (diff)
downloadlinux-1b737f88dc1b05cf571e96d42f748aaff6df1eb5.tar.xz
linux-1b737f88dc1b05cf571e96d42f748aaff6df1eb5.zip
mac80211: fix P2P-Device management frame RX
There's an issue in receiving broadcast management frames on P2P Device virtual interfaces, such frames have the RX flag IEEE80211_RX_RA_MATCH cleared and are thus dropped in ieee80211_rx_h_mgmt_check(). They should be let through to make it to ieee80211_rx_h_userspace_mgmt() and then to userspace. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 643fcf7c9dcd..14b32a4cd7bb 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3043,7 +3043,8 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,
!ieee80211_is_probe_resp(hdr->frame_control) &&
!ieee80211_is_beacon(hdr->frame_control))
return 0;
- if (!ether_addr_equal(sdata->vif.addr, hdr->addr1))
+ if (!ether_addr_equal(sdata->vif.addr, hdr->addr1) &&
+ !multicast)
status->rx_flags &= ~IEEE80211_RX_RA_MATCH;
break;
default: