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

Reply via email to