diff options
author | 2012-01-21 15:22:53 +0530 | |
---|---|---|
committer | 2012-01-24 14:12:27 +0200 | |
commit | 1d2a4456de20db73362c86c88fe9c02169f29d0a (patch) | |
tree | 3ecb864ad46a88bc7255a3431e4f446eb01a2829 /drivers/net/wireless/ath/ath6kl/core.c | |
parent | ath6kl: Fix bug in using tid given by addba/delba req events (diff) | |
download | linux-dev-1d2a4456de20db73362c86c88fe9c02169f29d0a.tar.xz linux-dev-1d2a4456de20db73362c86c88fe9c02169f29d0a.zip |
ath6kl: Fix bug in maintaining aggregation state in AP mode
Currently rx aggregation related states are maintained per
vif, but this will not properly work when operating in AP mode.
Aggregation is completely broken when more than one
11n stations are connected to AP mode vif. Fix this issue
by keeping station specific aggregation state in sta_list.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/core.c')
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/core.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/core.c b/drivers/net/wireless/ath/ath6kl/core.c index d764afec395b..0d92e7179f8a 100644 --- a/drivers/net/wireless/ath/ath6kl/core.c +++ b/drivers/net/wireless/ath/ath6kl/core.c @@ -253,6 +253,13 @@ struct ath6kl *ath6kl_core_create(struct device *dev) spin_lock_init(&ar->sta_list[ctr].psq_lock); skb_queue_head_init(&ar->sta_list[ctr].psq); skb_queue_head_init(&ar->sta_list[ctr].apsdq); + ar->sta_list[ctr].aggr_conn = + kzalloc(sizeof(struct aggr_info_conn), GFP_KERNEL); + if (!ar->sta_list[ctr].aggr_conn) { + ath6kl_err("Failed to allocate memory for sta aggregation information\n"); + ath6kl_core_destroy(ar); + return NULL; + } } skb_queue_head_init(&ar->mcastpsq); |