On 17 July 2015 at 11:09, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Fri, 2015-07-17 at 11:07 +0200, Johannes Berg wrote: >> >> > > Once (a) is not stripped (b) becomes important >> > > because it's the main condition to clear the >> > > Service Period bit of the station when Tx status >> > > for the released frame is reported back. >> > > >> > > This problem was observed with ath9k acting as P2P >> > > GO in some testing scenarios but isn't limited to >> > > it. AP operation with mac80211 based Tx A-MPDU >> > > control combined with clients using PS-Poll frames >> > > is subject to this race. >> > >> > I'm not sure I quite understand - how is the aggregation teardown >> > causing frame filtering? >> > >> >> Never mind, I was looking at the wrong code. I'll apply this. >> > > However, I'd like to ask you to look at this again - I can see how it > fixes the problem now, but it seems like a fairly unreliable fix since > the frame is sent through TX processing again, and you're relying on > that preserving a flag that's otherwise marked temporary... > > So I think it may be better to adjust the station flags in this case to > let a new (the same) frame be the ps-poll response again. Hmm.. I did contemplate on clearing the station flag. I didn't explore the idea thoroughly but my feeling was it could introduce new u-APSD corner-case bug(s) since you'd be changing the station state before it'd normally be done and hence would behave differently when handling Rx. I'll look into it more. Michał -- 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