Commit 85091fc0 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

brcm80211: smac: fix endless retry of A-MPDU transmissions

The A-MPDU code checked against a retry limit, but it was using
the wrong variable to do so. This patch fixes this to assure
proper retry mechanism.

This problem had a side-effect causing the mac80211 flush callback
to remain waiting forever as well. That side effect has been fixed
by commit by Stanislaw Gruszka:

commit f96b08a7
Date:   Tue Jan 17 12:38:50 2012 +0100

    brcmsmac: fix tx queue flush infinite loop


Cc: Stanislaw Gruszka <>
Reviewed-by: default avatarPieter-Paul Giesberts <>
Reviewed-by: default avatarAlwin Beukers <>
Signed-off-by: default avatarArend van Spriel <>
Signed-off-by: default avatarJohn W. Linville <>
parent 0dee0068
...@@ -1051,17 +1051,13 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, ...@@ -1051,17 +1051,13 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
} }
/* either retransmit or send bar if ack not recd */ /* either retransmit or send bar if ack not recd */
if (!ack_recd) { if (!ack_recd) {
struct ieee80211_tx_rate *txrate = if (retry && (ini->txretry[index] < (int)retry_limit)) {
if (retry && (txrate[0].count < (int)retry_limit)) {
ini->txretry[index]++; ini->txretry[index]++;
ini->tx_in_transit--; ini->tx_in_transit--;
/* /*
* Use high prededence for retransmit to * Use high prededence for retransmit to
* give some punch * give some punch
*/ */
/* brcms_c_txq_enq(wlc, scb, p,
* BRCMS_PRIO_TO_PREC(tid)); */
brcms_c_txq_enq(wlc, scb, p, brcms_c_txq_enq(wlc, scb, p,
} else { } else {
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment