aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-06-26 03:36:04 -0400
committerLuciano Coelho <coelho@ti.com>2011-07-05 14:33:20 -0400
commitfae2fd767e9d380ed0d05e4a5d6b1673e2c2d3df (patch)
tree0a0c972262bca63ed5c702c8819781a24a40ef23 /drivers
parent3618f30f307841dba19f22d9c602a5c59cab30c7 (diff)
wl12xx: use 802.11 header location after relocation to frame start
When operating with TKIP encryption, the function wl1271_tx_fill_hdr() relocates the 802.11 header to the start of the frame, and leaves room for the security header. Some functions in the Tx path rely on the location of the header, namely, for purposes of roaming in STA mode and connecting new stations in AP mode. Call these functions only after the header is relocated. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/wl12xx/tx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/tx.c b/drivers/net/wireless/wl12xx/tx.c
index 003f9e08691b..5c618c5ceda9 100644
--- a/drivers/net/wireless/wl12xx/tx.c
+++ b/drivers/net/wireless/wl12xx/tx.c
@@ -383,6 +383,8 @@ static int wl1271_prepare_tx_frame(struct wl1271 *wl, struct sk_buff *skb,
383 if (ret < 0) 383 if (ret < 0)
384 return ret; 384 return ret;
385 385
386 wl1271_tx_fill_hdr(wl, skb, extra, info, hlid);
387
386 if (wl->bss_type == BSS_TYPE_AP_BSS) { 388 if (wl->bss_type == BSS_TYPE_AP_BSS) {
387 wl1271_tx_ap_update_inconnection_sta(wl, skb); 389 wl1271_tx_ap_update_inconnection_sta(wl, skb);
388 wl1271_tx_regulate_link(wl, hlid); 390 wl1271_tx_regulate_link(wl, hlid);
@@ -390,8 +392,6 @@ static int wl1271_prepare_tx_frame(struct wl1271 *wl, struct sk_buff *skb,
390 wl1271_tx_update_filters(wl, skb); 392 wl1271_tx_update_filters(wl, skb);
391 } 393 }
392 394
393 wl1271_tx_fill_hdr(wl, skb, extra, info, hlid);
394
395 /* 395 /*
396 * The length of each packet is stored in terms of 396 * The length of each packet is stored in terms of
397 * words. Thus, we must pad the skb data to make sure its 397 * words. Thus, we must pad the skb data to make sure its