mac80211: clean up/fix aggregation code
authorJohannes Berg <johannes@sipsolutions.net>
Tue, 6 Apr 2010 09:18:47 +0000 (11:18 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 7 Apr 2010 18:38:05 +0000 (14:38 -0400)
commit098a607091426e79178b9a6c318d993fea131791
treed62c9993e49f90ca962cd763b096911d22d7e051
parent618f356b95e37ca0c30b3b513898fda54abd52a6
mac80211: clean up/fix aggregation code

The aggregation code has a number of quirks, like
inventing an unneeded WLAN_BACK_TIMER value and
leaking memory under certain circumstances during
station destruction. Fix these issues by using
the regular aggregation session teardown code and
blocking new aggregation sessions, all before the
station is really destructed.

As a side effect, this gets rid of the long code
block to destroy aggregation safely.

Additionally, rename tid_state_rx which can only
have the values IDLE and OPERATIONAL to
tid_active_rx to make it easier to understand
that there is no bitwise stuff going on on the
RX side -- the TX side remains because it needs
to keep track of the driver and peer states.

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