diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-04-18 23:42:19 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-04-18 23:44:41 +0200 |
commit | 1b737f88dc1b05cf571e96d42f748aaff6df1eb5 (patch) | |
tree | 2b5d99e1727a02cb681ee80a221dfd41cadea483 /net | |
parent | eea85999eca4d7f3528010cd8277392cd56ba713 (diff) | |
download | op-kernel-dev-1b737f88dc1b05cf571e96d42f748aaff6df1eb5.zip op-kernel-dev-1b737f88dc1b05cf571e96d42f748aaff6df1eb5.tar.gz |
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')
-rw-r--r-- | net/mac80211/rx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 643fcf7..14b32a4 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: |