* [PATCH for 3.3 0/2] brcm80211: fix endless A-MPDU retries @ 2012-02-23 17:38 Arend van Spriel 2012-02-23 17:38 ` [PATCH 1/2] brcm80211: smac: fix endless retry of A-MPDU transmissions Arend van Spriel 2012-02-23 17:38 ` [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level Arend van Spriel 0 siblings, 2 replies; 11+ messages in thread From: Arend van Spriel @ 2012-02-23 17:38 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Arend van Spriel Hi John, The first patch has already been taken in wireless-next repo. However, as people see the issue with 3.2 and 3.3 kernels it should go to wireless repository as well. Fix endless retries that became more obvious upon implementing the mac80211 flush callback and more so after adding the WARN_ON_ONCE by Stanislaw Gruszka (https://bugzilla.kernel.org/show_bug.cgi?id=42576). These second patch removes error print to limit the mess printed in the log when an A-MPDU transmission times out on the block-ack. Arend van Spriel (2): brcm80211: smac: fix endless retry of A-MPDU transmissions brcm80211: smac: only print block-ack timeout message at trace level drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) -- 1.7.5.4 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-02-23 17:38 [PATCH for 3.3 0/2] brcm80211: fix endless A-MPDU retries Arend van Spriel @ 2012-02-23 17:38 ` Arend van Spriel 2012-05-16 22:28 ` [PATCH 3.2.y, 3.3.y] " Jonathan Nieder 2012-02-23 17:38 ` [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level Arend van Spriel 1 sibling, 1 reply; 11+ messages in thread From: Arend van Spriel @ 2012-02-23 17:38 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Arend van Spriel, Stanislaw Gruszka 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 f96b08a7e6f69c0f0a576554df3df5b1b519c479 Date: Tue Jan 17 12:38:50 2012 +0100 brcmsmac: fix tx queue flush infinite loop Reference: https://bugzilla.kernel.org/show_bug.cgi?id=42576 Cc: Stanislaw Gruszka <sgruszka@redhat.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> --- drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 6 +----- 1 files changed, 1 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c index 90911ee..9265226 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c @@ -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 */ if (!ack_recd) { - struct ieee80211_tx_rate *txrate = - tx_info->status.rates; - if (retry && (txrate[0].count < (int)retry_limit)) { + if (retry && (ini->txretry[index] < (int)retry_limit)) { ini->txretry[index]++; ini->tx_in_transit--; /* * Use high prededence for retransmit to * give some punch */ - /* brcms_c_txq_enq(wlc, scb, p, - * BRCMS_PRIO_TO_PREC(tid)); */ brcms_c_txq_enq(wlc, scb, p, BRCMS_PRIO_TO_HI_PREC(tid)); } else { -- 1.7.5.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3.2.y, 3.3.y] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-02-23 17:38 ` [PATCH 1/2] brcm80211: smac: fix endless retry of A-MPDU transmissions Arend van Spriel @ 2012-05-16 22:28 ` Jonathan Nieder 2012-05-17 0:05 ` Ben Hutchings 2012-05-18 19:58 ` Greg KH 0 siblings, 2 replies; 11+ messages in thread From: Jonathan Nieder @ 2012-05-16 22:28 UTC (permalink / raw) To: stable Cc: Touko Korpela, Arend van Spriel, John W. Linville, linux-wireless, Stanislaw Gruszka From: Arend van Spriel <arend@broadcom.com> Date: Thu, 9 Feb 2012 21:08:58 +0100 commit 5e379203c7788b7af01150bfadbc74d2797a2ef4 upstream. 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 f96b08a7e6f69c0f0a576554df3df5b1b519c479 Date: Tue Jan 17 12:38:50 2012 +0100 brcmsmac: fix tx queue flush infinite loop Reference: https://bugzilla.kernel.org/show_bug.cgi?id=42576 Cc: Stanislaw Gruszka <sgruszka@redhat.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> --- Hi Ben and Greg, Please consider 5e379203c778 brcm80211: smac: fix endless retry of A-MPDU transmissions for application to the 3.2.y and 3.3.y stable trees. It is the real fix to the bug worked around by f96b08a7e6f6 (brcmsmac: fix tx queue flush infinite loop, 2012-01-17). The remaining symptom after that workaround was an assertion failure (WARNING at drivers/net/wireless/brcm80211/brcmsmac/main.c:8241). Touko Korpela (cc-ed) tested the patch against 3.2.17 + "brcm80211: smac: pass missing argument to 'brcms_b_mute'" and found it to work[1]: > Patch works, warning is gone after couple of hours of use. I let you > know if situation changes. Thanks, Jonathan [1] http://bugs.debian.org/672891 drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c index 7f27dbdb6b60..051586275f14 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c @@ -1053,17 +1053,13 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, } /* either retransmit or send bar if ack not recd */ if (!ack_recd) { - struct ieee80211_tx_rate *txrate = - tx_info->status.rates; - if (retry && (txrate[0].count < (int)retry_limit)) { + if (retry && (ini->txretry[index] < (int)retry_limit)) { ini->txretry[index]++; ini->tx_in_transit--; /* * Use high prededence for retransmit to * give some punch */ - /* brcms_c_txq_enq(wlc, scb, p, - * BRCMS_PRIO_TO_PREC(tid)); */ brcms_c_txq_enq(wlc, scb, p, BRCMS_PRIO_TO_HI_PREC(tid)); } else { -- 1.7.10.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3.2.y, 3.3.y] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-05-16 22:28 ` [PATCH 3.2.y, 3.3.y] " Jonathan Nieder @ 2012-05-17 0:05 ` Ben Hutchings 2012-05-18 19:58 ` Greg KH 1 sibling, 0 replies; 11+ messages in thread From: Ben Hutchings @ 2012-05-17 0:05 UTC (permalink / raw) To: Jonathan Nieder Cc: stable, Touko Korpela, Arend van Spriel, John W. Linville, linux-wireless, Stanislaw Gruszka [-- Attachment #1: Type: text/plain, Size: 348 bytes --] On Wed, 2012-05-16 at 17:28 -0500, Jonathan Nieder wrote: > From: Arend van Spriel <arend@broadcom.com> > Date: Thu, 9 Feb 2012 21:08:58 +0100 > > commit 5e379203c7788b7af01150bfadbc74d2797a2ef4 upstream. [...] Added to the queue for 3.2.y. Ben. -- Ben Hutchings Every program is either trivial or else contains at least one bug [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 828 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3.2.y, 3.3.y] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-05-16 22:28 ` [PATCH 3.2.y, 3.3.y] " Jonathan Nieder 2012-05-17 0:05 ` Ben Hutchings @ 2012-05-18 19:58 ` Greg KH 2012-05-18 20:51 ` Jonathan Nieder 1 sibling, 1 reply; 11+ messages in thread From: Greg KH @ 2012-05-18 19:58 UTC (permalink / raw) To: Jonathan Nieder Cc: stable, Touko Korpela, Arend van Spriel, John W. Linville, linux-wireless, Stanislaw Gruszka On Wed, May 16, 2012 at 05:28:25PM -0500, Jonathan Nieder wrote: > From: Arend van Spriel <arend@broadcom.com> > Date: Thu, 9 Feb 2012 21:08:58 +0100 > > commit 5e379203c7788b7af01150bfadbc74d2797a2ef4 upstream. > > 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 f96b08a7e6f69c0f0a576554df3df5b1b519c479 > Date: Tue Jan 17 12:38:50 2012 +0100 > > brcmsmac: fix tx queue flush infinite loop > > Reference: > https://bugzilla.kernel.org/show_bug.cgi?id=42576 > > Cc: Stanislaw Gruszka <sgruszka@redhat.com> > Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> > Reviewed-by: Alwin Beukers <alwin@broadcom.com> > Signed-off-by: Arend van Spriel <arend@broadcom.com> > Signed-off-by: John W. Linville <linville@tuxdriver.com> > Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> > --- > Hi Ben and Greg, > > Please consider > > 5e379203c778 brcm80211: smac: fix endless retry of A-MPDU > transmissions > > for application to the 3.2.y and 3.3.y stable trees. It is the real > fix to the bug worked around by f96b08a7e6f6 (brcmsmac: fix tx queue > flush infinite loop, 2012-01-17). The remaining symptom after that > workaround was an assertion failure (WARNING at > drivers/net/wireless/brcm80211/brcmsmac/main.c:8241). > > Touko Korpela (cc-ed) tested the patch against 3.2.17 + "brcm80211: > smac: pass missing argument to 'brcms_b_mute'" and found it to > work[1]: It doesn't apply to the 3.3-stable tree, so it's a bit hard for me to apply it... thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3.2.y, 3.3.y] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-05-18 19:58 ` Greg KH @ 2012-05-18 20:51 ` Jonathan Nieder 2012-05-19 8:49 ` Arend van Spriel 0 siblings, 1 reply; 11+ messages in thread From: Jonathan Nieder @ 2012-05-18 20:51 UTC (permalink / raw) To: Greg KH Cc: stable, Touko Korpela, Arend van Spriel, John W. Linville, linux-wireless, Stanislaw Gruszka Hi Greg, Greg KH wrote: > On Wed, May 16, 2012 at 05:28:25PM -0500, Jonathan Nieder wrote: >> commit 5e379203c7788b7af01150bfadbc74d2797a2ef4 upstream. [...] > It doesn't apply to the 3.3-stable tree, so it's a bit hard for me to > apply it... My bad --- looks like it was already applied during the 3.3 cycle as v3.3~19^2^2~7 (commit 85091fc0a756). Sorry I missed that before. Thanks, Jonathan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3.2.y, 3.3.y] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-05-18 20:51 ` Jonathan Nieder @ 2012-05-19 8:49 ` Arend van Spriel 2012-05-19 16:53 ` Jonathan Nieder 0 siblings, 1 reply; 11+ messages in thread From: Arend van Spriel @ 2012-05-19 8:49 UTC (permalink / raw) To: Jonathan Nieder Cc: Greg KH, stable, Touko Korpela, John W. Linville, linux-wireless, Stanislaw Gruszka On 05/18/2012 10:51 PM, Jonathan Nieder wrote: > Hi Greg, > > Greg KH wrote: >> On Wed, May 16, 2012 at 05:28:25PM -0500, Jonathan Nieder wrote: > >>> commit 5e379203c7788b7af01150bfadbc74d2797a2ef4 upstream. > [...] >> It doesn't apply to the 3.3-stable tree, so it's a bit hard for me to >> apply it... > > My bad --- looks like it was already applied during the 3.3 cycle as > v3.3~19^2^2~7 (commit 85091fc0a756). Sorry I missed that before. > > Thanks, > Jonathan > Yes. The patch was posted upstream with Cc to stable. As it did not apply to earlier kernels it was marked for 3.3 stable only. Jonathan ported the original patch for the earlier kernels. Gr. AvS ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3.2.y, 3.3.y] brcm80211: smac: fix endless retry of A-MPDU transmissions 2012-05-19 8:49 ` Arend van Spriel @ 2012-05-19 16:53 ` Jonathan Nieder 0 siblings, 0 replies; 11+ messages in thread From: Jonathan Nieder @ 2012-05-19 16:53 UTC (permalink / raw) To: Arend van Spriel Cc: Greg KH, stable, Touko Korpela, John W. Linville, linux-wireless, Stanislaw Gruszka Arend van Spriel wrote: > On 05/18/2012 10:51 PM, Jonathan Nieder wrote: >> My bad --- looks like it was already applied during the 3.3 cycle as >> v3.3~19^2^2~7 (commit 85091fc0a756). Sorry I missed that before. [...] > Yes. The patch was posted upstream with Cc to stable. As it did not > apply to earlier kernels it was marked for 3.3 stable only. Technically it wasn't cc-ed to stable; it went to wireless-next for 3.4 and then was fast-tracked through the plain wireless tree for 3.3[1]. But the effect is basically the same. Thanks for writing it. Jonathan [1] http://thread.gmane.org/gmane.linux.kernel.wireless.general/85902 http://thread.gmane.org/gmane.linux.kernel.wireless.general/85249 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level 2012-02-23 17:38 [PATCH for 3.3 0/2] brcm80211: fix endless A-MPDU retries Arend van Spriel 2012-02-23 17:38 ` [PATCH 1/2] brcm80211: smac: fix endless retry of A-MPDU transmissions Arend van Spriel @ 2012-02-23 17:38 ` Arend van Spriel 2012-11-24 23:14 ` [3.2.y] " Jonathan Nieder 1 sibling, 1 reply; 11+ messages in thread From: Arend van Spriel @ 2012-02-23 17:38 UTC (permalink / raw) To: linville; +Cc: linux-wireless, Arend van Spriel In regular use block-ack timeouts can happen so it does not make sense to fill the log with these messages. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Alwin Beukers <alwin@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> --- drivers/net/wireless/brcm80211/brcmsmac/ampdu.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c index 9265226..30b5887 100644 --- a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c +++ b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c @@ -1070,9 +1070,9 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb, IEEE80211_TX_STAT_AMPDU_NO_BACK; skb_pull(p, D11_PHY_HDR_LEN); skb_pull(p, D11_TXH_LEN); - wiphy_err(wiphy, "%s: BA Timeout, seq %d, in_" - "transit %d\n", "AMPDU status", seq, - ini->tx_in_transit); + BCMMSG(wiphy, + "BA Timeout, seq %d, in_transit %d\n", + seq, ini->tx_in_transit); ieee80211_tx_status_irqsafe(wlc->pub->ieee_hw, p); } -- 1.7.5.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [3.2.y] Re: [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level 2012-02-23 17:38 ` [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level Arend van Spriel @ 2012-11-24 23:14 ` Jonathan Nieder 2012-12-02 3:35 ` Ben Hutchings 0 siblings, 1 reply; 11+ messages in thread From: Jonathan Nieder @ 2012-11-24 23:14 UTC (permalink / raw) To: stable; +Cc: Arend van Spriel, John W. Linville, Touko Korpela, linux-wireless Hi Ben, Please consider 2b0a53d51b5f brcm80211: smac: only print block-ack timeout message at trace level for application to the 3.2.y tree. It just lowers the priority of a distracting repeated message about a normal condition: ieee80211 phy0: AMPDU status: BA Timeout, seq 152, in_transit 0 See <http://bugs.debian.org/674430> for context. The patch was applied upstream during the 3.3-rc7 cycle. Applying it should make debugging other problems easier. Thoughts of all kinds welcome, as always. Regards, Jonathan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [3.2.y] Re: [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level 2012-11-24 23:14 ` [3.2.y] " Jonathan Nieder @ 2012-12-02 3:35 ` Ben Hutchings 0 siblings, 0 replies; 11+ messages in thread From: Ben Hutchings @ 2012-12-02 3:35 UTC (permalink / raw) To: Jonathan Nieder Cc: stable, Arend van Spriel, John W. Linville, Touko Korpela, linux-wireless [-- Attachment #1: Type: text/plain, Size: 781 bytes --] On Sat, 2012-11-24 at 15:14 -0800, Jonathan Nieder wrote: > Hi Ben, > > Please consider > > 2b0a53d51b5f brcm80211: smac: only print block-ack timeout message > at trace level > > for application to the 3.2.y tree. > > It just lowers the priority of a distracting repeated message about a > normal condition: > > ieee80211 phy0: AMPDU status: BA Timeout, seq 152, in_transit 0 > > See <http://bugs.debian.org/674430> for context. > > The patch was applied upstream during the 3.3-rc7 cycle. Applying it > should make debugging other problems easier. Thoughts of all kinds > welcome, as always. Added to the queue, thanks. Ben. -- Ben Hutchings It is easier to change the specification to fit the program than vice versa. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 828 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-12-02 3:35 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-02-23 17:38 [PATCH for 3.3 0/2] brcm80211: fix endless A-MPDU retries Arend van Spriel 2012-02-23 17:38 ` [PATCH 1/2] brcm80211: smac: fix endless retry of A-MPDU transmissions Arend van Spriel 2012-05-16 22:28 ` [PATCH 3.2.y, 3.3.y] " Jonathan Nieder 2012-05-17 0:05 ` Ben Hutchings 2012-05-18 19:58 ` Greg KH 2012-05-18 20:51 ` Jonathan Nieder 2012-05-19 8:49 ` Arend van Spriel 2012-05-19 16:53 ` Jonathan Nieder 2012-02-23 17:38 ` [PATCH 2/2] brcm80211: smac: only print block-ack timeout message at trace level Arend van Spriel 2012-11-24 23:14 ` [3.2.y] " Jonathan Nieder 2012-12-02 3:35 ` Ben Hutchings
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).