wl1251: mask aid bits 14 and 15 in ps-poll template
authorKalle Valo <kalle.valo@nokia.com>
Tue, 17 Nov 2009 16:49:00 +0000 (18:49 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 18 Nov 2009 22:09:21 +0000 (17:09 -0500)
In ps-poll template aid bits 14 and 15 were not masked as required by the
standard. Mask them so that aid is sent in correct format.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Vidhya Govindan <vidhya.govindan@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/wl12xx/wl1251_main.c

index 1f4c238a3371dba46a8c51421010144ab1a2c997..41f5ad49f480313ae87503c4d14429c1d310fa75 100644 (file)
@@ -580,7 +580,10 @@ static int wl1251_build_ps_poll(struct wl1251 *wl, u16 aid)
 
        memcpy(template.bssid, wl->bssid, ETH_ALEN);
        memcpy(template.ta, wl->mac_addr, ETH_ALEN);
-       template.aid = aid;
+
+       /* aid in PS-Poll has its two MSBs each set to 1 */
+       template.aid = cpu_to_le16(1 << 15 | 1 << 14 | aid);
+
        template.fc = cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_PSPOLL);
 
        return wl1251_cmd_template_set(wl, CMD_PS_POLL, &template,