I was going to apply this, but running with lockdep enabled tells me
that this patch is broken.
In the callers of ieee80211_sta_tear_down_BA_sessions(), we only hold
the &local->sta_mtx.
However,
> + rcu_dereference_protected_tid_tx(sta, i);
requires (and checks, if you have lockdep) that you hold either
&sta->ampdu_mlme.mtx
or
&sta->lock.
Additionally, ieee80211_remove_tid_tx(), called via
ieee80211_stop_tx_ba_cb(), requires holding both - and
ieee80211_stop_tx_ba_cb() only requires the spinlock.
johannes