On Mon, 2010-04-19 at 09:29 +0300, Kalle Valo wrote: > > It might be useful to do a bisect. If you choose to do that, you > > might want to use wireless-next-2.6 instead, since that doesn't have > > the occasional pulls from Linus that make bisecting wireless-testing > > more painful. > > Thanks for the tip, it helped a lot. My new laptop is really slow to > compile kernels :/ > > I bisected it finally and found the culprit: > > 66b0470aeef10a3b0f9a6a1c60d908b5a06c62ae is the first bad commit > commit 66b0470aeef10a3b0f9a6a1c60d908b5a06c62ae > Author: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > Date: Tue Apr 6 11:18:45 2010 +0200 > > mac80211: remove ieee80211_sta_stop_rx_ba_session [...] > I took a quick peek of the patches but I wasn't able to immediately > say what was wrong. This just made me suspicious: > > - ieee80211_sta_stop_rx_ba_session(sta->sdata, sta->sta.addr, > - (u16)*ptid, WLAN_BACK_TIMER, > - WLAN_REASON_QSTA_TIMEOUT); > + __ieee80211_stop_rx_ba_session(sta, *ptid, > - WLAN_BACK_RECIPIENT, > + WLAN_REASON_QSTA_TIMEOUT); > > WLAN_BACK_TIMER was changed to WLAN_BACK_RECIPIENT, but I don't know > if it was in purpose or not. Johannes, any ideas? That was on purpose but belongs into 098a607091426e79178b9a6c318d993fea131791 not this patch ... :( However that shouldn't be the problem. Or rather, that could be the reason you're seeing the problem on this patch, rather than the 098a one. Try the patch below? johannes --- wireless-testing.orig/net/mac80211/agg-rx.c 2010-04-19 08:40:17.000000000 +0200 +++ wireless-testing/net/mac80211/agg-rx.c 2010-04-19 08:40:27.000000000 +0200 @@ -47,11 +47,6 @@ void __ieee80211_stop_rx_ba_session(stru printk(KERN_DEBUG "HW problem - can not stop rx " "aggregation for tid %d\n", tid); - /* check if this is a self generated aggregation halt */ - if (initiator == WLAN_BACK_RECIPIENT) - ieee80211_send_delba(sta->sdata, sta->sta.addr, - tid, 0, reason); - /* free the reordering buffer */ for (i = 0; i < tid_rx->buf_size; i++) { if (tid_rx->reorder_buf[i]) { @@ -69,6 +64,11 @@ void __ieee80211_stop_rx_ba_session(stru spin_unlock_bh(&sta->lock); + /* check if this is a self generated aggregation halt */ + if (initiator == WLAN_BACK_RECIPIENT) + ieee80211_send_delba(sta->sdata, sta->sta.addr, + tid, 0, reason); + del_timer_sync(&tid_rx->session_timer); kfree(tid_rx); } -- 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