On 28 August 2014 22:05, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Thu, 2014-08-28 at 13:33 +0200, Michal Kazior wrote: > >> Instead of last_seq pick seqno of a first Rxed >> frame of a given BA session. > > Any way to do this without touching the RX path? It's kinda a hotpath :) Perhaps we could push this to the driver, i.e. export ieee80211_set_rx_ba_session_ssn() so a driver can update the ssn/head_seq_num on its own. It would then first request an offloaded BA and when it sees first frame for that BA it would update the ssn before calling ieee80211_rx(). This way other drivers won't be bothered with cruft on the Rx path. The function would have to be called within a softirq/tasklet/timer unless reorder_lock locking goes _bh. I'm worried how a driver would map Rxed frames to a vifs though. I could probably do it in ath10k indirectly via peer ids mapping but that would involve more resources than the current approach does. Is putting an extra if() in the Rx path really worth the concern? I'd expect branch prediction to take care of this nicely. I guess I could add an unlikely() too. 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