mac80211: pass up beacons from external BSS when operating as AP
authorArik Nemtsov <arik@wizery.com>
Tue, 1 Feb 2011 11:23:05 +0000 (13:23 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 3 Feb 2011 21:44:44 +0000 (16:44 -0500)
Beacons from external BSSes are required for updating overlapping BSS
info (i.e. ERP protection). Pass them up unconditionally.

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

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