forked from Minki/linux
mwifiex: allocate space for one more mwifiex_private structure
Reserve space for one more priv structure. This will be used by AP interface. Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com> Signed-off-by: Kiran Divekar <dkiran@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
dfcfb545d7
commit
64b05e2f46
@ -28,7 +28,7 @@
|
||||
#include <linux/ieee80211.h>
|
||||
|
||||
|
||||
#define MWIFIEX_MAX_BSS_NUM (1)
|
||||
#define MWIFIEX_MAX_BSS_NUM (2)
|
||||
|
||||
#define MWIFIEX_MIN_DATA_HEADER_LEN 36 /* sizeof(mwifiex_txpd)
|
||||
* + 4 byte alignment
|
||||
|
@ -64,17 +64,17 @@ static int mwifiex_register(void *card, struct mwifiex_if_ops *if_ops,
|
||||
|
||||
adapter->priv_num = 0;
|
||||
|
||||
/* Allocate memory for private structure */
|
||||
adapter->priv[0] = kzalloc(sizeof(struct mwifiex_private), GFP_KERNEL);
|
||||
if (!adapter->priv[0]) {
|
||||
dev_err(adapter->dev,
|
||||
"%s: failed to alloc priv[0]\n", __func__);
|
||||
goto error;
|
||||
for (i = 0; i < MWIFIEX_MAX_BSS_NUM; i++) {
|
||||
/* Allocate memory for private structure */
|
||||
adapter->priv[i] =
|
||||
kzalloc(sizeof(struct mwifiex_private), GFP_KERNEL);
|
||||
if (!adapter->priv[i])
|
||||
goto error;
|
||||
|
||||
adapter->priv[i]->adapter = adapter;
|
||||
adapter->priv[i]->bss_priority = i;
|
||||
adapter->priv_num++;
|
||||
}
|
||||
|
||||
adapter->priv_num++;
|
||||
|
||||
adapter->priv[0]->adapter = adapter;
|
||||
mwifiex_init_lock_list(adapter);
|
||||
|
||||
init_timer(&adapter->cmd_timer);
|
||||
@ -836,13 +836,16 @@ int mwifiex_remove_card(struct mwifiex_adapter *adapter, struct semaphore *sem)
|
||||
}
|
||||
|
||||
priv = adapter->priv[0];
|
||||
if (!priv)
|
||||
if (!priv || !priv->wdev)
|
||||
goto exit_remove;
|
||||
|
||||
if (priv->wdev) {
|
||||
wiphy_unregister(priv->wdev->wiphy);
|
||||
wiphy_free(priv->wdev->wiphy);
|
||||
kfree(priv->wdev);
|
||||
wiphy_unregister(priv->wdev->wiphy);
|
||||
wiphy_free(priv->wdev->wiphy);
|
||||
|
||||
for (i = 0; i < adapter->priv_num; i++) {
|
||||
priv = adapter->priv[i];
|
||||
if (priv)
|
||||
kfree(priv->wdev);
|
||||
}
|
||||
|
||||
mwifiex_terminate_workqueue(adapter);
|
||||
|
@ -885,6 +885,10 @@ mwifiex_wmm_get_highest_priolist_ptr(struct mwifiex_adapter *adapter,
|
||||
tid_ptr = &(priv_tmp)->wmm.
|
||||
tid_tbl_ptr[tos_to_tid[i]];
|
||||
|
||||
/* For non-STA ra_list_curr may be NULL */
|
||||
if (!tid_ptr->ra_list_curr)
|
||||
continue;
|
||||
|
||||
spin_lock_irqsave(&tid_ptr->tid_tbl_lock,
|
||||
flags);
|
||||
is_list_empty =
|
||||
|
Loading…
Reference in New Issue
Block a user