wl1251: Send null data packet with "TODS" bit set
authorVidhya Govindan <vidhya.govindan@nokia.com>
Tue, 17 Nov 2009 16:49:54 +0000 (18:49 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 18 Nov 2009 22:09:23 +0000 (17:09 -0500)
According to IEEE80211 standard all the data packets have to be sent with
TODS bit set. This patch fixes the null data packet format which was sent
without TODS bit set. This should fix many problems associated with
power save. Janne Ylalehto also found this fix in the same time as mine,
for a different bug he was working on.

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

index 2e1c10f9670ae06619573b13227248eb0a13e69a..ff4be7bf5d360f8223a7cc3fad7b383fdb75d191 100644 (file)
@@ -576,7 +576,8 @@ static int wl1251_build_null_data(struct wl1251 *wl)
 
        memcpy(template.header.sa, wl->mac_addr, ETH_ALEN);
        template.header.frame_ctl = cpu_to_le16(IEEE80211_FTYPE_DATA |
-                                               IEEE80211_STYPE_NULLFUNC);
+                                               IEEE80211_STYPE_NULLFUNC |
+                                               IEEE80211_FCTL_TODS);
 
        return wl1251_cmd_template_set(wl, CMD_NULL_DATA, &template,
                                       sizeof(template));