It looks like the AR9170 MAC seems to be incapable of
matching BA to xmitted BARs. This is a problem because
when mac80211 tries to recover it sends out BARs which
can't be matched to a BA and so it goes on. Of course
having lots of stale BARs around causes mayhem in the
receiver buffer at the HT peer on the other end because
it's constantly flushing the reorder buffer.
Note: This is hopefully just a temporary fix, but until
there's a better method, it will provide at least some
relief.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
fw.wlan.cab_queue_len[super->s.vif_id]--;
#endif /* CONFIG_CARL9170FW_CAB_QUEUE */
+ if (unlikely(ieee80211_is_back_req(super->f.data.i3e.frame_control))) {
+ /*
+ * As explained above, the hardware seems to be
+ * incapable of matching BA to BARs. This is a
+ * problem especially with mac80211, because it
+ * does resent failed BARs which of course cause
+ * some mayhem in the receiver buffer at the HT
+ * peer on the other end.
+ */
+ success = true;
+ }
+
wlan_tx_complete(super, success);
/* recycle freed descriptors */