> > @@ -1212,7 +1212,8 @@ void ieee80211_sta_stop_rx_BA_session(struct net_device *dev, u8 *ra, u16 tid, > > struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr); > > struct ieee80211_hw *hw = &local->hw; > > struct sta_info *sta; > > - int ret; > > + struct ieee80211_rx_status status; > > + int ret, i; > > > > sta = sta_info_get(local, ra); > > if (!sta) > > @@ -1254,6 +1255,20 @@ void ieee80211_sta_stop_rx_BA_session(struct net_device *dev, u8 *ra, u16 tid, > > ieee80211_send_delba(dev, ra, tid, 0, reason); > > > > /* free the reordering buffer */ > > + for (i = 0; i < sta->ampdu_mlme.tid_rx[tid].buf_size; i++) { > > Something I just thought of but probably simply missed: where's the > session torn down when we ifdown an interface while an A-MPDU session is > active? I didn't go through all the patches again, did I miss that > somewhere? > No, and it should be done. were would you recommend to put this tear down? i need a flow were i can be sta specific, and is called only once per ifdown. sta_info_release related flow, were i thought to put it, is risking me with endless loops of kref_put calls. > johannes > > - 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