diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-04-18 17:42:19 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-04-18 17:44:41 -0400 |
commit | 1b737f88dc1b05cf571e96d42f748aaff6df1eb5 (patch) | |
tree | 2b5d99e1727a02cb681ee80a221dfd41cadea483 | |
parent | eea85999eca4d7f3528010cd8277392cd56ba713 (diff) |
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>
-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 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, | |||
3043 | !ieee80211_is_probe_resp(hdr->frame_control) && | 3043 | !ieee80211_is_probe_resp(hdr->frame_control) && |
3044 | !ieee80211_is_beacon(hdr->frame_control)) | 3044 | !ieee80211_is_beacon(hdr->frame_control)) |
3045 | return 0; | 3045 | return 0; |
3046 | if (!ether_addr_equal(sdata->vif.addr, hdr->addr1)) | 3046 | if (!ether_addr_equal(sdata->vif.addr, hdr->addr1) && |
3047 | !multicast) | ||
3047 | status->rx_flags &= ~IEEE80211_RX_RA_MATCH; | 3048 | status->rx_flags &= ~IEEE80211_RX_RA_MATCH; |
3048 | break; | 3049 | break; |
3049 | default: | 3050 | default: |