diff options
author | Eliad Peller <eliad@wizery.com> | 2011-02-09 10:25:14 (GMT) |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-02-22 16:06:36 (GMT) |
commit | 92fe9b5f112c77dbb63f42f7bed885d709586106 (patch) | |
tree | 0fc9e2e0a3458330dd22bbc4246a3d4d12286b04 /drivers/net/wireless | |
parent | 1ec610ebd6390c2b028434144af204c312a68791 (diff) | |
download | linux-92fe9b5f112c77dbb63f42f7bed885d709586106.tar.xz |
wl12xx: fix identification of beacon packets (debug)
for debugging purposes, wl12xx determines whether a rx packet
is a beacon packet.
however, it checks only the frame_control subtype without checking
the actual packet type, which leads to false identification in some
cases.
use ieee80211_is_beacon instead.
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/wl12xx/rx.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/wl12xx/rx.c b/drivers/net/wireless/wl12xx/rx.c index 00d250d..3d13d7a 100644 --- a/drivers/net/wireless/wl12xx/rx.c +++ b/drivers/net/wireless/wl12xx/rx.c @@ -92,7 +92,7 @@ static int wl1271_rx_handle_data(struct wl1271 *wl, u8 *data, u32 length) { struct wl1271_rx_descriptor *desc; struct sk_buff *skb; - u16 *fc; + struct ieee80211_hdr *hdr; u8 *buf; u8 beacon = 0; @@ -118,8 +118,8 @@ static int wl1271_rx_handle_data(struct wl1271 *wl, u8 *data, u32 length) /* now we pull the descriptor out of the buffer */ skb_pull(skb, sizeof(*desc)); - fc = (u16 *)skb->data; - if ((*fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON) + hdr = (struct ieee80211_hdr *)skb->data; + if (ieee80211_is_beacon(hdr->frame_control)) beacon = 1; wl1271_rx_status(wl, desc, IEEE80211_SKB_RXCB(skb), beacon); |