On Mon, Jan 23, 2012 at 5:03 PM, Andreas Hartmann <andihartmann@xxxxxxxxxx> wrote: > Helmut Schaa schrieb: >> On Fri, Jan 20, 2012 at 8:29 AM, Andreas Hartmann >> <andihartmann@xxxxxxxxxxxxxxx> wrote: >>> All in one: Your workaround was a good idea, but unfortunately it >>> doesn't "solve" / workaround the problem introduced with the patch >>> "mac80211: retry sending failed BAR frames later instead of tearing >>> down aggr" [1]. I don't know off any other solution at this time as to revert it. >> >> Ok, so we've got at least one hw issue here: rt2800 is not able to report >> correct ACK state of BARs :( >> >> The interesting bit is that the legacy drivers tear the BA session down as >> soon as the first AMPDU subframe failed. That's the same behavior as >> mac80211 had before the mentioned patch. >> >> So, let's assume the generic way Felix implemented works for other devices >> (like ath9k) we could go with a workaround inside rt2x00 to tear down >> the BA session as soon as the first AMPDU frame failed. >> >> Mind to try that one (not even compile tested though :) ). > > hdr is missing. I tried to derive it like this: > > struct ieee80211_hdr *hdr=(void*)entry->skb->data; Looks correct but you should put it right before the ieee80211_is_data_qos check not at the start of the function ... Also you might want to add " tx_info->control.sta != NULL" check in the same if clause. Helmut -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html