]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: fix aggregation timer lockups
authorJohannes Berg <johannes@sipsolutions.net>
Tue, 10 Feb 2009 20:25:51 +0000 (21:25 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 13 Feb 2009 18:45:43 +0000 (13:45 -0500)
commit4b8589af81d4d27b478fd37606f33c81a0bfa768
treeba7c079d3ce4d7278eeb45317ba3baf54f45c96c
parentb167a44646557bfd61b505864ed003ab6f808f43
mac80211: fix aggregation timer lockups

As far as I can tell, there are possible lockups because both the RX
session_timer and TX addba_resp_timer are del_timer_sync'ed under
the sta spinlock which both timer functions take. Additionally, the
TX agg code seems to leak memory when TX aggregation is not disabled
before the sta_info is freed.

Fix this by making the free code a little smarter in the RX agg case,
and actually make the sta_info_destroy code free the TX agg info in
the TX agg case. We won't notify the peer, but it'll notice something
is wrong anyway, and normally this only happens after we've told it
in some other way we will no longer talk to it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/agg-rx.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h