aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-04-18 17:42:19 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-04-18 17:44:41 -0400
commit1b737f88dc1b05cf571e96d42f748aaff6df1eb5 (patch)
tree2b5d99e1727a02cb681ee80a221dfd41cadea483
parenteea85999eca4d7f3528010cd8277392cd56ba713 (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.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,
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: