diff options
-rw-r--r-- | drivers/net/wireless/ti/wlcore/tx.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/ti/wlcore/tx.c b/drivers/net/wireless/ti/wlcore/tx.c index 6983e7a829d0..8ee82b9f93f4 100644 --- a/drivers/net/wireless/ti/wlcore/tx.c +++ b/drivers/net/wireless/ti/wlcore/tx.c | |||
@@ -305,11 +305,15 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
305 | if (is_dummy || !wlvif) | 305 | if (is_dummy || !wlvif) |
306 | rate_idx = 0; | 306 | rate_idx = 0; |
307 | else if (wlvif->bss_type != BSS_TYPE_AP_BSS) { | 307 | else if (wlvif->bss_type != BSS_TYPE_AP_BSS) { |
308 | /* if the packets are destined for AP (have a STA entry) | 308 | /* |
309 | send them with AP rate policies, otherwise use default | 309 | * if the packets are destined for AP (have a STA entry) |
310 | basic rates */ | 310 | * send them with AP rate policies (EAPOLs are an exception), |
311 | * otherwise use default basic rates | ||
312 | */ | ||
311 | if (control->flags & IEEE80211_TX_CTL_NO_CCK_RATE) | 313 | if (control->flags & IEEE80211_TX_CTL_NO_CCK_RATE) |
312 | rate_idx = wlvif->sta.p2p_rate_idx; | 314 | rate_idx = wlvif->sta.p2p_rate_idx; |
315 | else if (skb->protocol == cpu_to_be16(ETH_P_PAE)) | ||
316 | rate_idx = wlvif->sta.basic_rate_idx; | ||
313 | else if (control->control.sta) | 317 | else if (control->control.sta) |
314 | rate_idx = wlvif->sta.ap_rate_idx; | 318 | rate_idx = wlvif->sta.ap_rate_idx; |
315 | else | 319 | else |