mac80211: allow action frames with unknown BSSID in GO mode
authorArik Nemtsov <arik@wizery.com>
Tue, 23 Aug 2011 07:21:27 +0000 (10:21 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 26 Aug 2011 14:47:56 +0000 (10:47 -0400)
When operating as a P2P GO, we receive some P2P action frames where the
BSSID is set to the peer MAC address. Specifically, this occurs for
invitation responses. These are valid action frames and they should be
passed up.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rx.c

index edd46193af6fa0a0d22ba2ed6718a74f028ce101..f45fd2fedc2415b6f5f68a58b2c00439dc4a71e6 100644 (file)
@@ -2716,7 +2716,9 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,
                } else if (!ieee80211_bssid_match(bssid,
                                        sdata->vif.addr)) {
                        if (!(status->rx_flags & IEEE80211_RX_IN_SCAN) &&
-                           !ieee80211_is_beacon(hdr->frame_control))
+                           !ieee80211_is_beacon(hdr->frame_control) &&
+                           !(ieee80211_is_action(hdr->frame_control) &&
+                             sdata->vif.p2p))
                                return 0;
                        status->rx_flags &= ~IEEE80211_RX_RA_MATCH;
                }