X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Fsrc%2Fwlan.c;fp=carlfw%2Fsrc%2Fwlan.c;h=b8d4ec436fca3f54ed5708c80407c4b9fc75e4cb;hb=c5ade0a37dc2650ec206cce64dcaea32d2bd86be;hp=e581fa8ddea34db0095a4d9d2516cf5eba89056e;hpb=69f7043e7a2223e25cc525161a2de45d293d21d0;p=carl9170fw.git diff --git a/carlfw/src/wlan.c b/carlfw/src/wlan.c index e581fa8..b8d4ec4 100644 --- a/carlfw/src/wlan.c +++ b/carlfw/src/wlan.c @@ -457,6 +457,18 @@ static bool wlan_tx_status(struct dma_queue *queue, 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 */