diff options
author | Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> | 2011-12-07 06:21:38 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-12-16 09:27:56 -0500 |
commit | 356cb55d81d1692bd74b96c71deeb7e1cf956196 (patch) | |
tree | 49a38e815bd2caf80eec8ef5d6ab73696c0fa712 | |
parent | d66be8294289346ceba4c6abc022954b682d4959 (diff) |
ath9k: validate for non-zero BSSID
before concluding that the recieved beacon is for us, let us make sure
that the BSSID is non-zero. when I configured ad-hoc mode as creator and
left it for some time without joining I found we recieved few frames whose
BSSID is zero, which we concluded wrongly as 'my_beacons'
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index e0318415c2a0..ad5176de07dc 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -1823,6 +1823,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1823 | hdr = (struct ieee80211_hdr *) (hdr_skb->data + rx_status_len); | 1823 | hdr = (struct ieee80211_hdr *) (hdr_skb->data + rx_status_len); |
1824 | rxs = IEEE80211_SKB_RXCB(hdr_skb); | 1824 | rxs = IEEE80211_SKB_RXCB(hdr_skb); |
1825 | if (ieee80211_is_beacon(hdr->frame_control) && | 1825 | if (ieee80211_is_beacon(hdr->frame_control) && |
1826 | !is_zero_ether_addr(common->curbssid) && | ||
1826 | !compare_ether_addr(hdr->addr3, common->curbssid)) | 1827 | !compare_ether_addr(hdr->addr3, common->curbssid)) |
1827 | rs.is_mybeacon = true; | 1828 | rs.is_mybeacon = true; |
1828 | else | 1829 | else |