[rt2x00-users] [bugzilla-daemon at bugzilla.kernel.org: [Bug 42828] rt2800pci unstable - chokes after too much I/O]

Stanislaw Gruszka sgruszka at redhat.com
Wed Nov 14 02:04:00 AEDT 2012

On Tue, Nov 06, 2012 at 09:52:03PM +0100, Andreas Hartmann wrote:
> Stanislaw Gruszka wrote:
> > On Thu, Oct 18, 2012 at 08:48:22PM +0200, Andreas Hartmann wrote:
> >>> any insight on commit be03d4a45c09ee5100d3aaaedd087f19bc20d01f
> >>> regression described in kernel.org bug 42828 ?
> >>
> >> Anyway, I retested with compat-wireless-3.5 rc5 and I can see a complete
> >> hanging connection after 3s of running netperf with
> >> 0011-Revert-rt2x00-Don-t-let-mac80211-send-a-BAR-when-an-.patch (2.4
> >> GHz, 40MHz) - the original problem and the reason for the patch.
> > 
> > Andreas, 
> > 
> > can you revert commit be03d4a45c09ee5100d3aaaedd087f19bc20d01f and test
> > below patch, does AP mode also hungs with that?
> The patch not only hangs up the connection, but the complete machine :-(

Ok, I'm voting for reverting both commits:

commit be03d4a45c09ee5100d3aaaedd087f19bc20d01f
Author: Andreas Hartmann <andihartmann at 01019freenet.de>
Date:   Tue Apr 17 00:25:28 2012 +0200

    rt2x00: Don't let mac80211 send a BAR when an AMPDU subframe fails

commit f0425beda4d404a6e751439b562100b902ba9c98
Author: Felix Fietkau <nbd at openwrt.org>
Date:   Sun Aug 28 21:11:01 2011 +0200

    mac80211: retry sending failed BAR frames later instead of tearing down aggr

f0425beda is causing troubles on rt2800 because that hardware do not
report BAR ack (perhaps because it is acked by BA frame not ACK frame),
so we constantly send BAR frames with the same SSN. This can be hardware
problem, but also if we can jump into that simulation if remote station
will not ack BAR frames or due to noisy radio conditions.

Felix, are you ok with revert of f0425beda ? I think posting BAR at
robust rate (see below patch) could address the problem, which commit
f0425beda solves.


diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index 3195a63..63c5d9e 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -136,7 +136,8 @@ void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn)
 	bar->start_seq_num = cpu_to_le16(ssn);
 	IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT |
 	ieee80211_tx_skb_tid(sdata, skb, tid);

More information about the users mailing list