mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 06:41:43 +00:00
wl12xx: set the actual tid instead of the ac
When passing a tx frame, the driver incorrectly set desc->tid with the ac instead of the actual tid. It has some serious implications when using 802.11n + QoS, as the fw starts a BlockAck with the wrong tid (which finally cause beacon loss and disconnection / some fw crash) Fix it by using the actual tid stored in skb->priority. Reported-by: Shahar Levi <shahar_levi@ti.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
parent
f9f774c17e
commit
db674d249c
@ -221,9 +221,9 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb,
|
||||
else
|
||||
desc->life_time = cpu_to_le16(TX_HW_AP_MODE_PKT_LIFETIME_TU);
|
||||
|
||||
/* queue (we use same identifiers for tid's and ac's */
|
||||
/* queue */
|
||||
ac = wl1271_tx_get_queue(skb_get_queue_mapping(skb));
|
||||
desc->tid = ac;
|
||||
desc->tid = skb->priority;
|
||||
|
||||
if (skb->pkt_type == TX_PKT_TYPE_DUMMY_REQ) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user