* [PATCH 1/4] mwifiex: remove wrapper functions for spin_lock/spin_unlock
@ 2010-12-16 0:57 Bing Zhao
2010-12-16 0:57 ` [PATCH 2/4] mwifiex: modify set_default_key() prototype Bing Zhao
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Bing Zhao @ 2010-12-16 0:57 UTC (permalink / raw)
To: linux-wireless
Cc: John W. Linville, Johannes Berg, Amitkumar Karwar, Kiran Divekar,
Frank Huang, Bing Zhao
From: Amitkumar Karwar <akarwar@marvell.com>
Call spin_lock/spin_unlock functions directly instead of driver
specific wrapper functions. Use sparse annotations (__acquires()
/__releases()) to fix context imbalance sparse warnings.
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
---
drivers/net/wireless/mwifiex/11n.c | 7 +-
drivers/net/wireless/mwifiex/11n_aggr.c | 27 ++++---
drivers/net/wireless/mwifiex/11n_aggr.h | 3 +-
drivers/net/wireless/mwifiex/11n_rxreorder.c | 20 +++--
drivers/net/wireless/mwifiex/cmdevt.c | 54 +++++++------
drivers/net/wireless/mwifiex/init.c | 78 +++----------------
drivers/net/wireless/mwifiex/main.c | 11 ++-
drivers/net/wireless/mwifiex/main.h | 21 +++--
drivers/net/wireless/mwifiex/scan.c | 22 +++--
drivers/net/wireless/mwifiex/sdio.c | 10 ++-
drivers/net/wireless/mwifiex/sta_cmdresp.c | 9 +-
drivers/net/wireless/mwifiex/txrx.c | 7 +-
drivers/net/wireless/mwifiex/util.c | 110 ++++++--------------------
drivers/net/wireless/mwifiex/util.h | 16 +---
drivers/net/wireless/mwifiex/wmm.c | 72 ++++++++++-------
15 files changed, 193 insertions(+), 274 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/11n.c b/drivers/net/wireless/mwifiex/11n.c
index d1494bf..73d2fb7 100644
--- a/drivers/net/wireless/mwifiex/11n.c
+++ b/drivers/net/wireless/mwifiex/11n.c
@@ -1102,9 +1102,11 @@ void
mwifiex_11n_delete_tx_ba_stream_tbl_entry(struct mwifiex_private *priv,
struct mwifiex_tx_ba_stream_tbl *tx_ba_tsr_tbl)
{
+ unsigned long flags;
+
ENTER();
- mwifiex_spin_lock(priv->tx_ba_stream_tbl_ptr.lock);
+ spin_lock_irqsave(&priv->tx_ba_stream_tbl_ptr.lock, flags);
if (!tx_ba_tsr_tbl &&
mwifiex_is_tx_ba_stream_ptr_valid(priv, tx_ba_tsr_tbl))
@@ -1119,7 +1121,8 @@ mwifiex_11n_delete_tx_ba_stream_tbl_entry(struct mwifiex_private *priv,
kfree(tx_ba_tsr_tbl);
exit:
- mwifiex_spin_unlock(priv->tx_ba_stream_tbl_ptr.lock);
+ spin_unlock_irqrestore(&priv->tx_ba_stream_tbl_ptr.lock, flags);
+
LEAVE();
}
diff --git a/drivers/net/wireless/mwifiex/11n_aggr.c b/drivers/net/wireless/mwifiex/11n_aggr.c
index e100ffc..ca24d54 100644
--- a/drivers/net/wireless/mwifiex/11n_aggr.c
+++ b/drivers/net/wireless/mwifiex/11n_aggr.c
@@ -306,7 +306,8 @@ done:
int
mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
struct mwifiex_ra_list_tbl *pra_list, int headroom,
- int ptrindex)
+ int ptrindex, unsigned long flags)
+ __releases(&priv->wmm.ra_list_spinlock)
{
int pkt_size = 0;
struct mwifiex_adapter *adapter = priv->adapter;
@@ -317,6 +318,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
struct timeval tstamp;
struct mwifiex_tx_param tx_param;
struct txpd *ptx_pd = NULL;
+
ENTER();
PRINTM(MDAT_D, "Handling Aggr packet\n");
@@ -329,6 +331,8 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
if (!mbuf_aggr) {
PRINTM(MERROR,
"Error allocating struct mwifiex_buffer\n");
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
return MWIFIEX_STATUS_FAILURE;
}
@@ -347,6 +351,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA)
ptx_pd = (struct txpd *)mbuf_aggr->buffer;
} else {
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
goto exit;
}
@@ -359,7 +364,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
pra_list->total_pkts_size -= mbuf_src->data_len;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
pkt_size += mwifiex_11n_form_amsdu_pkt(adapter,
(data + pkt_size),
mbuf_src->buffer +
@@ -372,10 +377,11 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
mwifiex_write_data_complete(adapter, mbuf_src,
MWIFIEX_STATUS_SUCCESS);
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (!mwifiex_is_ralist_valid(priv, pra_list, ptrindex)) {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
LEAVE();
return MWIFIEX_STATUS_FAILURE;
}
@@ -385,7 +391,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
mwifiex_util_peek_list(&pra_list->buf_head, true);
}
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
/* Last AMSDU packet does not need padding */
pkt_size -= pad;
@@ -402,10 +408,11 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
mbuf_aggr, &tx_param);
switch (ret) {
case MWIFIEX_STATUS_RESOURCE:
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (!mwifiex_is_ralist_valid(priv, pra_list, ptrindex)) {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
mwifiex_write_data_complete(adapter, mbuf_aggr,
MWIFIEX_STATUS_FAILURE);
LEAVE();
@@ -424,7 +431,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
pra_list->total_pkts_size += mbuf_aggr->data_len;
mbuf_aggr->flags |= MWIFIEX_BUF_FLAG_REQUEUED_PKT;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
PRINTM(MDATA, "MWIFIEX_STATUS_RESOURCE is returned\n");
break;
case MWIFIEX_STATUS_FAILURE:
@@ -444,7 +451,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
break;
}
if (ret != MWIFIEX_STATUS_RESOURCE) {
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (mwifiex_is_ralist_valid(priv, pra_list, ptrindex)) {
priv->wmm.packets_out[ptrindex]++;
priv->wmm.tid_tbl_ptr[ptrindex].ra_list_curr = pra_list;
@@ -452,7 +459,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
adapter->bss_prio_tbl[priv->bss_priority].bss_prio_cur =
adapter->bss_prio_tbl[priv->bss_priority]
.bss_prio_cur->next;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
}
do_gettimeofday(&tstamp);
PRINTM(MDATA, "%lu.%lu : Data => kernel\n",
diff --git a/drivers/net/wireless/mwifiex/11n_aggr.h b/drivers/net/wireless/mwifiex/11n_aggr.h
index 7f190ad..5b076f2 100644
--- a/drivers/net/wireless/mwifiex/11n_aggr.h
+++ b/drivers/net/wireless/mwifiex/11n_aggr.h
@@ -26,6 +26,7 @@ enum mwifiex_status mwifiex_11n_deaggregate_pkt(struct mwifiex_private *priv,
struct mwifiex_buffer *mbuf);
int mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
struct mwifiex_ra_list_tbl *ptr, int headroom,
- int ptr_index);
+ int ptr_index, unsigned long flags)
+ __releases(&priv->wmm.ra_list_spinlock);
#endif /* !_MWIFIEX_11N_AGGR_H_ */
diff --git a/drivers/net/wireless/mwifiex/11n_rxreorder.c b/drivers/net/wireless/mwifiex/11n_rxreorder.c
index 8fdb1fb..9d72135 100644
--- a/drivers/net/wireless/mwifiex/11n_rxreorder.c
+++ b/drivers/net/wireless/mwifiex/11n_rxreorder.c
@@ -57,6 +57,7 @@ mwifiex_11n_dispatch_pkt_until_start_win(struct mwifiex_private *priv,
int no_pkt_to_send, i, xchg;
enum mwifiex_status ret = MWIFIEX_STATUS_SUCCESS;
void *rx_tmp_ptr = NULL;
+ unsigned long flags;
ENTER();
@@ -65,18 +66,18 @@ mwifiex_11n_dispatch_pkt_until_start_win(struct mwifiex_private *priv,
rx_reor_tbl_ptr->win_size) : rx_reor_tbl_ptr->win_size;
for (i = 0; i < no_pkt_to_send; ++i) {
- mwifiex_spin_lock(priv->rx_pkt_lock);
+ spin_lock_irqsave(&priv->rx_pkt_lock, flags);
rx_tmp_ptr = NULL;
if (rx_reor_tbl_ptr->rx_reorder_ptr[i]) {
rx_tmp_ptr = rx_reor_tbl_ptr->rx_reorder_ptr[i];
rx_reor_tbl_ptr->rx_reorder_ptr[i] = NULL;
}
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
if (rx_tmp_ptr)
mwifiex_11n_dispatch_pkt(priv, rx_tmp_ptr);
}
- mwifiex_spin_lock(priv->rx_pkt_lock);
+ spin_lock_irqsave(&priv->rx_pkt_lock, flags);
/*
* We don't have a circular buffer, hence use rotation to simulate
* circular buffer
@@ -89,7 +90,7 @@ mwifiex_11n_dispatch_pkt_until_start_win(struct mwifiex_private *priv,
}
rx_reor_tbl_ptr->start_win = start_win;
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
LEAVE();
return ret;
@@ -125,22 +126,23 @@ mwifiex_11n_scan_and_dispatch(struct mwifiex_private *priv,
int i, j, xchg;
enum mwifiex_status ret = MWIFIEX_STATUS_SUCCESS;
void *rx_tmp_ptr = NULL;
+ unsigned long flags;
ENTER();
for (i = 0; i < rx_reor_tbl_ptr->win_size; ++i) {
- mwifiex_spin_lock(priv->rx_pkt_lock);
+ spin_lock_irqsave(&priv->rx_pkt_lock, flags);
if (!rx_reor_tbl_ptr->rx_reorder_ptr[i]) {
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
break;
}
rx_tmp_ptr = rx_reor_tbl_ptr->rx_reorder_ptr[i];
rx_reor_tbl_ptr->rx_reorder_ptr[i] = NULL;
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
mwifiex_11n_dispatch_pkt(priv, rx_tmp_ptr);
}
- mwifiex_spin_lock(priv->rx_pkt_lock);
+ spin_lock_irqsave(&priv->rx_pkt_lock, flags);
/*
* We don't have a circular buffer, hence use rotation to simulate
* circular buffer
@@ -155,7 +157,7 @@ mwifiex_11n_scan_and_dispatch(struct mwifiex_private *priv,
}
rx_reor_tbl_ptr->start_win = (rx_reor_tbl_ptr->start_win + i)
&(MAX_TID_VALUE - 1);
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
LEAVE();
return ret;
}
diff --git a/drivers/net/wireless/mwifiex/cmdevt.c b/drivers/net/wireless/mwifiex/cmdevt.c
index 873de93..cfdf206 100644
--- a/drivers/net/wireless/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/mwifiex/cmdevt.c
@@ -227,6 +227,7 @@ mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
uint16_t cmd_code;
uint16_t cmd_size;
struct timeval tstamp;
+ unsigned long flags;
ENTER();
@@ -260,9 +261,9 @@ mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
(adapter->seq_num, cmd_node->priv->bss_num,
cmd_node->priv->bss_type));
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd = cmd_node;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
cmd_code = le16_to_cpu(host_cmd->command);
cmd_size = le16_to_cpu(host_cmd->size);
@@ -291,9 +292,9 @@ mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
adapter->
curr_cmd);
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd = NULL;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
adapter->dbg.num_cmd_host_to_card_failure++;
ret = MWIFIEX_STATUS_FAILURE;
@@ -813,6 +814,7 @@ mwifiex_exec_next_cmd(struct mwifiex_adapter *adapter)
struct cmd_ctrl_node *cmd_node = NULL;
enum mwifiex_status ret = MWIFIEX_STATUS_SUCCESS;
struct host_cmd_ds_command *host_cmd;
+ unsigned long flags;
ENTER();
@@ -830,7 +832,7 @@ mwifiex_exec_next_cmd(struct mwifiex_adapter *adapter)
goto done;
}
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
/* Check if any command is pending */
cmd_node =
(struct cmd_ctrl_node *) mwifiex_util_peek_list(&adapter->
@@ -846,14 +848,15 @@ mwifiex_exec_next_cmd(struct mwifiex_adapter *adapter)
if (adapter->ps_state != PS_STATE_AWAKE) {
PRINTM(MERROR, "Cannot send command in sleep state"
", this should not happen\n");
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock,
+ flags);
goto done;
}
mwifiex_util_unlink_list(&adapter->cmd_pending_q,
(struct mwifiex_linked_list *)
cmd_node, true);
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
ret = mwifiex_dnld_cmd_to_fw(priv, cmd_node);
priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
/* Any command sent to the firmware when host is in sleep
@@ -871,7 +874,7 @@ mwifiex_exec_next_cmd(struct mwifiex_adapter *adapter)
}
goto done;
} else {
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
}
ret = MWIFIEX_STATUS_SUCCESS;
done:
@@ -897,6 +900,7 @@ mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
uint16_t cmdresp_result;
struct mwifiex_ioctl_req *ioctl_buf = NULL;
struct timeval tstamp;
+ unsigned long flags;
ENTER();
@@ -939,9 +943,9 @@ mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
PRINTM(MERROR, "CMD_RESP: 0x%x been canceled!\n",
le16_to_cpu(resp->command));
mwifiex_insert_cmd_to_free_q(adapter, adapter->curr_cmd);
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd = NULL;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
ret = MWIFIEX_STATUS_FAILURE;
goto done;
}
@@ -982,9 +986,9 @@ mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
ioctl_buf->status_code = MWIFIEX_ERROR_FW_CMDRESP;
mwifiex_insert_cmd_to_free_q(adapter, adapter->curr_cmd);
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd = NULL;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
ret = MWIFIEX_STATUS_FAILURE;
goto done;
}
@@ -1024,9 +1028,9 @@ mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
/* Clean up and put current command back to cmd_free_q */
mwifiex_insert_cmd_to_free_q(adapter, adapter->curr_cmd);
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd = NULL;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
}
done:
@@ -1141,15 +1145,16 @@ mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter)
{
struct cmd_ctrl_node *cmd_node = NULL;
struct mwifiex_ioctl_req *ioctl_buf = NULL;
+ unsigned long flags;
/* Cancel current cmd */
if ((adapter->curr_cmd) && (adapter->curr_cmd->ioctl_buf)) {
ioctl_buf =
(struct mwifiex_ioctl_req *) adapter->curr_cmd->
ioctl_buf;
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd->ioctl_buf = NULL;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
ioctl_buf->status_code = MWIFIEX_ERROR_CMD_CANCEL;
mwifiex_ioctl_complete(adapter, ioctl_buf,
MWIFIEX_STATUS_FAILURE);
@@ -1184,9 +1189,9 @@ mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter)
cmd_node->ioctl_buf = NULL;
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
}
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->scan_processing = false;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
}
/*
@@ -1204,6 +1209,7 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter,
struct mwifiex_ioctl_req *ioctl_req)
{
struct cmd_ctrl_node *cmd_node = NULL;
+ unsigned long flags;
ENTER();
@@ -1213,14 +1219,14 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter,
if ((adapter->curr_cmd) &&
(adapter->curr_cmd->ioctl_buf == ioctl_req)) {
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
cmd_node = adapter->curr_cmd;
cmd_node->ioctl_buf = NULL;
cmd_node->cmd_flag |= CMD_F_CANCELED;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
}
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
while ((cmd_node =
mwifiex_get_pending_ioctl_cmd(adapter, ioctl_req)) != NULL) {
mwifiex_util_unlink_list(&adapter->cmd_pending_q,
@@ -1229,7 +1235,7 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter,
cmd_node->ioctl_buf = NULL;
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
}
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
if (ioctl_req->req_id == MWIFIEX_IOCTL_SCAN) {
/* Cancel all pending scan command */
while ((cmd_node =
@@ -1242,9 +1248,9 @@ mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter,
cmd_node->ioctl_buf = NULL;
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
}
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->scan_processing = false;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
}
ioctl_req->status_code = MWIFIEX_ERROR_CMD_CANCEL;
mwifiex_ioctl_complete(adapter, ioctl_req, MWIFIEX_STATUS_FAILURE);
diff --git a/drivers/net/wireless/mwifiex/init.c b/drivers/net/wireless/mwifiex/init.c
index 51ce799..b7fdd18 100644
--- a/drivers/net/wireless/mwifiex/init.c
+++ b/drivers/net/wireless/mwifiex/init.c
@@ -391,44 +391,16 @@ enum mwifiex_status wlan_init_lock_list(struct mwifiex_adapter *adapter)
ENTER();
- if (mwifiex_init_lock(&adapter->mwifiex_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
- if (mwifiex_init_lock(&adapter->int_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
- if (mwifiex_init_lock(&adapter->main_proc_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
- if (mwifiex_init_lock(&adapter->mwifiex_cmd_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
+ spin_lock_init(&adapter->mwifiex_lock);
+ spin_lock_init(&adapter->int_lock);
+ spin_lock_init(&adapter->main_proc_lock);
+ spin_lock_init(&adapter->mwifiex_cmd_lock);
for (i = 0; i < adapter->priv_num; i++) {
if (adapter->priv[i]) {
priv = adapter->priv[i];
- if (mwifiex_init_lock(&priv->rx_pkt_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
- if (mwifiex_init_lock(&priv->wmm.ra_list_spinlock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
- if (mwifiex_init_lock(&priv->curr_bcn_buf_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto error;
- }
+ spin_lock_init(&priv->rx_pkt_lock);
+ spin_lock_init(&priv->wmm.ra_list_spinlock);
+ spin_lock_init(&priv->curr_bcn_buf_lock);
}
}
@@ -458,7 +430,6 @@ enum mwifiex_status wlan_init_lock_list(struct mwifiex_adapter *adapter)
}
}
-error:
LEAVE();
return ret;
}
@@ -475,27 +446,6 @@ void wlan_free_lock_list(struct mwifiex_adapter *adapter)
ENTER();
- if (adapter->mwifiex_lock)
- mwifiex_free_lock(adapter->mwifiex_lock);
- if (adapter->int_lock)
- mwifiex_free_lock(adapter->int_lock);
- if (adapter->main_proc_lock)
- mwifiex_free_lock(adapter->main_proc_lock);
- if (adapter->mwifiex_cmd_lock)
- mwifiex_free_lock(adapter->mwifiex_cmd_lock);
-
- for (i = 0; i < adapter->priv_num; i++) {
- if (adapter->priv[i]) {
- priv = adapter->priv[i];
- if (priv->rx_pkt_lock)
- mwifiex_free_lock(priv->rx_pkt_lock);
- if (priv->wmm.ra_list_spinlock)
- mwifiex_free_lock(priv->wmm.ra_list_spinlock);
- if (priv->curr_bcn_buf_lock)
- mwifiex_free_lock(priv->curr_bcn_buf_lock);
- }
- }
-
/* Free lists */
mwifiex_util_free_list_head(&adapter->cmd_free_q);
@@ -608,6 +558,7 @@ mwifiex_shutdown_drv(struct mwifiex_adapter *adapter)
enum mwifiex_status ret = MWIFIEX_STATUS_PENDING;
struct mwifiex_private *priv = NULL;
s32 i = 0;
+ unsigned long flags;
ENTER();
@@ -635,25 +586,16 @@ mwifiex_shutdown_drv(struct mwifiex_adapter *adapter)
}
}
- if (mwifiex_spin_lock(adapter->mwifiex_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto exit_shutdown_fw;
- }
+ spin_lock_irqsave(&adapter->mwifiex_lock, flags);
/* Free adapter structure */
mwifiex_free_adapter(adapter);
- if (mwifiex_spin_unlock(adapter->mwifiex_lock)
- != MWIFIEX_STATUS_SUCCESS) {
- ret = MWIFIEX_STATUS_FAILURE;
- goto exit_shutdown_fw;
- }
+ spin_unlock_irqrestore(&adapter->mwifiex_lock, flags);
/* Notify completion */
ret = mwifiex_shutdown_fw_complete(adapter);
-exit_shutdown_fw:
LEAVE();
return ret;
}
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c
index 686567e..09319db 100644
--- a/drivers/net/wireless/mwifiex/main.c
+++ b/drivers/net/wireless/mwifiex/main.c
@@ -263,18 +263,19 @@ enum mwifiex_status
mwifiex_main_process(struct mwifiex_adapter *adapter)
{
enum mwifiex_status ret = MWIFIEX_STATUS_SUCCESS;
+ unsigned long flags;
ENTER();
- mwifiex_spin_lock(adapter->main_proc_lock);
+ spin_lock_irqsave(&adapter->main_proc_lock, flags);
/* Check if already processing */
if (adapter->mwifiex_processing) {
- mwifiex_spin_unlock(adapter->main_proc_lock);
+ spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
goto exit_main_proc;
} else {
adapter->mwifiex_processing = true;
- mwifiex_spin_unlock(adapter->main_proc_lock);
+ spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
}
process_start:
do {
@@ -393,9 +394,9 @@ process_start:
if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter))
goto process_start;
- mwifiex_spin_lock(adapter->main_proc_lock);
+ spin_lock_irqsave(&adapter->main_proc_lock, flags);
adapter->mwifiex_processing = false;
- mwifiex_spin_unlock(adapter->main_proc_lock);
+ spin_unlock_irqrestore(&adapter->main_proc_lock, flags);
exit_main_proc:
if (adapter->hw_status == MWIFIEX_HW_STATUS_CLOSING)
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index 010a68a..be7156c 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -237,7 +237,8 @@ struct mwifiex_tid_tbl {
struct mwifiex_wmm_desc {
struct mwifiex_tid_tbl tid_tbl_ptr[MAX_NUM_TID];
u32 packets_out[MAX_NUM_TID];
- void *ra_list_spinlock;
+ /* spin lock to protect ra_list */
+ spinlock_t ra_list_spinlock;
struct mwifiex_wmm_ac_status ac_status[IEEE80211_MAX_QUEUES];
enum mwifiex_wmm_ac_e ac_down_graded_vals[IEEE80211_MAX_QUEUES];
u32 drv_pkt_delay_max;
@@ -388,7 +389,8 @@ struct mwifiex_private {
struct mwifiex_add_ba_param add_ba_param;
u16 rx_seq[MAX_NUM_TID];
struct mwifiex_list_head rx_reorder_tbl_ptr;
- void *rx_pkt_lock;
+ /* spin lock for Rx packets */
+ spinlock_t rx_pkt_lock;
#define MWIFIEX_ASSOC_RSP_BUF_SIZE 500
u8 assoc_rsp_buf[MWIFIEX_ASSOC_RSP_BUF_SIZE];
@@ -406,7 +408,8 @@ struct mwifiex_private {
u8 *curr_bcn_buf;
u32 curr_bcn_size;
- void *curr_bcn_buf_lock;
+ /* spin lock for beacon buffer */
+ spinlock_t curr_bcn_buf_lock;
u16 ioctl_wait_q_woken;
wait_queue_head_t ioctl_wait_q;
u16 cmd_wait_q_woken;
@@ -564,8 +567,10 @@ struct mwifiex_adapter {
struct workqueue_struct *workqueue;
struct work_struct main_work;
struct mwifiex_bss_prio_tbl bss_prio_tbl[MWIFIEX_MAX_BSS_NUM];
- void *mwifiex_lock;
- void *main_proc_lock;
+ /* spin lock for init/shutdown */
+ spinlock_t mwifiex_lock;
+ /* spin lock for main process */
+ spinlock_t main_proc_lock;
u32 mwifiex_processing;
u16 max_tx_buf_size;
u16 tx_buf_size;
@@ -575,7 +580,8 @@ struct mwifiex_adapter {
u16 radio_on;
u16 number_of_antenna;
u32 fw_cap_info;
- void *int_lock;
+ /* spin lock for interrupt handling */
+ spinlock_t int_lock;
u8 int_status;
u32 event_cause;
struct mwifiex_buffer *mwifiex_buffer_event;
@@ -589,7 +595,8 @@ struct mwifiex_adapter {
u16 seq_num;
struct cmd_ctrl_node *cmd_pool;
struct cmd_ctrl_node *curr_cmd;
- void *mwifiex_cmd_lock;
+ /* spin lock for command */
+ spinlock_t mwifiex_cmd_lock;
u32 num_cmd_timeout;
u16 last_init_cmd;
struct mwifiex_drv_timer *mwifiex_cmd_timer;
diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c
index fc63922..23be1de 100644
--- a/drivers/net/wireless/mwifiex/scan.c
+++ b/drivers/net/wireless/mwifiex/scan.c
@@ -2222,6 +2222,7 @@ mwifiex_process_scan_results(struct mwifiex_private *priv)
struct mwifiex_adapter *adapter = priv->adapter;
s32 j;
u32 i;
+ unsigned long flags;
ENTER();
@@ -2235,7 +2236,7 @@ mwifiex_process_scan_results(struct mwifiex_private *priv)
priv->bss_mode);
if (j >= 0) {
- mwifiex_spin_lock(priv->curr_bcn_buf_lock);
+ spin_lock_irqsave(&priv->curr_bcn_buf_lock, flags);
priv->curr_bss_params.bss_descriptor.bcn_wpa_ie = NULL;
priv->curr_bss_params.bss_descriptor.wpa_offset = 0;
priv->curr_bss_params.bss_descriptor.bcn_rsn_ie = NULL;
@@ -2275,7 +2276,8 @@ mwifiex_process_scan_results(struct mwifiex_private *priv)
sizeof(priv->curr_bss_params.bss_descriptor));
mwifiex_save_curr_bcn(priv);
- mwifiex_spin_unlock(priv->curr_bcn_buf_lock);
+ spin_unlock_irqrestore(&priv->curr_bcn_buf_lock, flags);
+
} else {
mwifiex_restore_curr_bcn(priv);
}
@@ -2536,6 +2538,7 @@ mwifiex_scan_networks(struct mwifiex_private *priv,
u8 filtered_scan;
u8 scan_current_chan_only;
u8 max_chan_per_scan;
+ unsigned long flags;
ENTER();
@@ -2592,9 +2595,10 @@ mwifiex_scan_networks(struct mwifiex_private *priv,
cmd_node = (struct cmd_ctrl_node *)
mwifiex_util_dequeue_list(&adapter->
scan_pending_q, true);
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->scan_processing = true;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock,
+ flags);
mwifiex_insert_cmd_to_pending_q(adapter, cmd_node,
true);
}
@@ -2695,6 +2699,7 @@ mwifiex_ret_802_11_scan(struct mwifiex_private *priv,
struct chan_band_param_set *chan_band;
u8 band;
u8 is_bgscan_resp;
+ unsigned long flags;
ENTER();
@@ -2917,9 +2922,9 @@ mwifiex_ret_802_11_scan(struct mwifiex_private *priv,
adapter->num_in_scan_table = num_in_table;
if (!mwifiex_util_peek_list(&adapter->scan_pending_q, true)) {
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->scan_processing = false;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
/*
* Process the resulting scan table:
* - Remove any bad ssids
@@ -3348,12 +3353,13 @@ mwifiex_restore_curr_bcn(struct mwifiex_private *priv)
struct mwifiex_adapter *adapter = priv->adapter;
struct mwifiex_bssdescriptor *curr_bss =
&priv->curr_bss_params.bss_descriptor;
+ unsigned long flags;
if (priv->curr_bcn_buf &&
((adapter->bcn_buf_end + priv->curr_bcn_size) <
(adapter->bcn_buf + sizeof(adapter->bcn_buf)))) {
- mwifiex_spin_lock(priv->curr_bcn_buf_lock);
+ spin_lock_irqsave(&priv->curr_bcn_buf_lock, flags);
/* restore the current beacon buffer */
memcpy(adapter->bcn_buf_end, priv->curr_bcn_buf,
@@ -3408,7 +3414,7 @@ mwifiex_restore_curr_bcn(struct mwifiex_private *priv)
curr_bss->overlap_bss_offset);
}
- mwifiex_spin_unlock(priv->curr_bcn_buf_lock);
+ spin_unlock_irqrestore(&priv->curr_bcn_buf_lock, flags);
PRINTM(MINFO, "current beacon restored %d\n",
priv->curr_bcn_size);
diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index c06e662..d0d9ed7 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
@@ -954,6 +954,7 @@ static void mwifiex_interrupt_status(struct mwifiex_adapter *adapter)
struct sdio_mmc_card *card = adapter->card;
struct mwifiex_buffer mbuf;
u32 sdio_ireg = 0;
+ unsigned long flags;
ENTER();
@@ -978,9 +979,9 @@ static void mwifiex_interrupt_status(struct mwifiex_adapter *adapter)
* Clear the interrupt status register
*/
PRINTM(MINTR, "sdio_ireg = 0x%x\n", sdio_ireg);
- mwifiex_spin_lock(adapter->int_lock);
+ spin_lock_irqsave(&adapter->int_lock, flags);
adapter->int_status |= sdio_ireg;
- mwifiex_spin_unlock(adapter->int_lock);
+ spin_unlock_irqrestore(&adapter->int_lock, flags);
}
done:
LEAVE();
@@ -1312,13 +1313,14 @@ mwifiex_process_int_status(struct mwifiex_adapter *adapter)
u32 len_reg_l, len_reg_u;
u32 rx_blocks;
u16 rx_len;
+ unsigned long flags;
ENTER();
- mwifiex_spin_lock(adapter->int_lock);
+ spin_lock_irqsave(&adapter->int_lock, flags);
sdio_ireg = adapter->int_status;
adapter->int_status = 0;
- mwifiex_spin_unlock(adapter->int_lock);
+ spin_unlock_irqrestore(&adapter->int_lock, flags);
if (!sdio_ireg)
goto done;
diff --git a/drivers/net/wireless/mwifiex/sta_cmdresp.c b/drivers/net/wireless/mwifiex/sta_cmdresp.c
index d5b8ef0..c1b646e 100644
--- a/drivers/net/wireless/mwifiex/sta_cmdresp.c
+++ b/drivers/net/wireless/mwifiex/sta_cmdresp.c
@@ -47,6 +47,7 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
{
struct cmd_ctrl_node *cmd_node = NULL;
struct mwifiex_adapter *adapter = priv->adapter;
+ unsigned long flags;
ENTER();
@@ -86,9 +87,9 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
cmd_node->ioctl_buf = NULL;
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
}
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->scan_processing = false;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
mwifiex_recv_event(priv, MWIFIEX_EVENT_ID_DRV_SCAN_REPORT,
NULL);
break;
@@ -104,9 +105,9 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
*/
mwifiex_insert_cmd_to_free_q(adapter, adapter->curr_cmd);
- mwifiex_spin_lock(adapter->mwifiex_cmd_lock);
+ spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
adapter->curr_cmd = NULL;
- mwifiex_spin_unlock(adapter->mwifiex_cmd_lock);
+ spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
LEAVE();
return;
diff --git a/drivers/net/wireless/mwifiex/txrx.c b/drivers/net/wireless/mwifiex/txrx.c
index a05f2d8..25a3205 100644
--- a/drivers/net/wireless/mwifiex/txrx.c
+++ b/drivers/net/wireless/mwifiex/txrx.c
@@ -181,6 +181,7 @@ mwifiex_recv_packet_complete(struct mwifiex_adapter *adapter,
enum mwifiex_status ret = MWIFIEX_STATUS_SUCCESS;
struct mwifiex_private *priv;
struct mwifiex_buffer *mbuf_parent;
+ unsigned long flags;
ENTER();
@@ -189,15 +190,15 @@ mwifiex_recv_packet_complete(struct mwifiex_adapter *adapter,
if (mbuf->parent) {
mbuf_parent = mbuf->parent;
- mwifiex_spin_lock(priv->rx_pkt_lock);
+ spin_lock_irqsave(&priv->rx_pkt_lock, flags);
--mbuf_parent->use_count;
if (!mbuf_parent->use_count) {
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
mwifiex_recv_complete(adapter,
mbuf_parent, adapter->ioport,
status);
} else {
- mwifiex_spin_unlock(priv->rx_pkt_lock);
+ spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
}
mwifiex_free_buffer(mbuf);
diff --git a/drivers/net/wireless/mwifiex/util.c b/drivers/net/wireless/mwifiex/util.c
index 73fe3c4..9af28b3 100644
--- a/drivers/net/wireless/mwifiex/util.c
+++ b/drivers/net/wireless/mwifiex/util.c
@@ -63,73 +63,6 @@ mwifiex_shutdown_fw_complete(struct mwifiex_adapter *adapter)
}
/*
- * This function initializes a spin lock.
- */
-enum mwifiex_status
-mwifiex_init_lock(void **lock)
-{
- struct mwifiex_lock *mlock = NULL;
-
- mlock = kmalloc(sizeof(struct mwifiex_lock), GFP_KERNEL);
- if (!mlock)
- return MWIFIEX_STATUS_FAILURE;
-
- spin_lock_init(&mlock->lock);
- *lock = (void *) mlock;
-
- return MWIFIEX_STATUS_SUCCESS;
-}
-
-/*
- * This function frees a spin lock.
- */
-enum mwifiex_status
-mwifiex_free_lock(void *lock)
-{
- struct mwifiex_lock *mlock = lock;
-
- kfree(mlock);
-
- return MWIFIEX_STATUS_SUCCESS;
-}
-
-/*
- * This function requests a spin lock.
- */
-inline enum mwifiex_status
-mwifiex_spin_lock(void *lock)
-{
- struct mwifiex_lock *mlock = lock;
- unsigned long flags = 0;
-
- if (mlock) {
- spin_lock_irqsave(&mlock->lock, flags);
- mlock->flags = flags;
- return MWIFIEX_STATUS_SUCCESS;
- } else {
- return MWIFIEX_STATUS_FAILURE;
- }
-}
-EXPORT_SYMBOL_GPL(mwifiex_spin_lock);
-
-/*
- * This function requests a spin unlock.
- */
-inline enum mwifiex_status
-mwifiex_spin_unlock(void *lock)
-{
- struct mwifiex_lock *mlock = (struct mwifiex_lock *) lock;
-
- if (mlock) {
- spin_unlock_irqrestore(&mlock->lock, mlock->flags);
- return MWIFIEX_STATUS_SUCCESS;
- } else {
- return MWIFIEX_STATUS_FAILURE;
- }
-}
-EXPORT_SYMBOL_GPL(mwifiex_spin_unlock);
-
-/*
* This function peeks into a list.
*
* A pointer to the next node in the list is returned, but the node
@@ -139,15 +72,17 @@ struct mwifiex_linked_list *
mwifiex_util_peek_list(struct mwifiex_list_head *head, u8 lock_required)
{
struct mwifiex_linked_list *node = NULL;
+ unsigned long flags;
- if (lock_required)
- mwifiex_spin_lock(head->lock);
-
- if (head->next != (struct mwifiex_linked_list *) head)
- node = head->next;
-
- if (lock_required)
- mwifiex_spin_unlock(head->lock);
+ if (lock_required) {
+ spin_lock_irqsave(&head->lock, flags);
+ if (head->next != (struct mwifiex_linked_list *) head)
+ node = head->next;
+ spin_unlock_irqrestore(&head->lock, flags);
+ } else {
+ if (head->next != (struct mwifiex_linked_list *) head)
+ node = head->next;
+ }
return node;
}
@@ -161,11 +96,8 @@ inline void
mwifiex_util_init_list_head(struct mwifiex_list_head *head, u8 lock_required)
{
mwifiex_util_init_list((struct mwifiex_linked_list *) head);
-
if (lock_required)
- mwifiex_init_lock(&head->lock);
- else
- head->lock = NULL;
+ spin_lock_init(&head->lock);
}
/*
@@ -177,9 +109,10 @@ mwifiex_util_enqueue_list_tail(struct mwifiex_list_head *head,
u8 lock_required)
{
struct mwifiex_linked_list *old_last;
+ unsigned long flags = 0;
if (lock_required)
- mwifiex_spin_lock(head->lock);
+ spin_lock_irqsave(&head->lock, flags);
old_last = head->prev;
node->prev = old_last;
@@ -189,7 +122,7 @@ mwifiex_util_enqueue_list_tail(struct mwifiex_list_head *head,
head->prev = old_last->next;
if (lock_required)
- mwifiex_spin_unlock(head->lock);
+ spin_unlock_irqrestore(&head->lock, flags);
}
/*
@@ -201,9 +134,10 @@ mwifiex_util_enqueue_list_head(struct mwifiex_list_head *head,
u8 lock_required)
{
struct mwifiex_linked_list *old_first;
+ unsigned long flags = 0;
if (lock_required)
- mwifiex_spin_lock(head->lock);
+ spin_lock_irqsave(&head->lock, flags);
old_first = head->next;
node->prev = (struct mwifiex_linked_list *) head;
@@ -213,7 +147,7 @@ mwifiex_util_enqueue_list_head(struct mwifiex_list_head *head,
head->next = old_first->prev;
if (lock_required)
- mwifiex_spin_unlock(head->lock);
+ spin_unlock_irqrestore(&head->lock, flags);
}
/*
@@ -228,9 +162,10 @@ mwifiex_util_unlink_list(struct mwifiex_list_head *head,
{
struct mwifiex_linked_list *my_prev;
struct mwifiex_linked_list *my_next;
+ unsigned long flags = 0;
if (lock_required)
- mwifiex_spin_lock(head->lock);
+ spin_lock_irqsave(&head->lock, flags);
my_prev = node->prev;
my_next = node->next;
@@ -241,7 +176,7 @@ mwifiex_util_unlink_list(struct mwifiex_list_head *head,
node->next = node->prev;
if (lock_required)
- mwifiex_spin_unlock(head->lock);
+ spin_unlock_irqrestore(&head->lock, flags);
}
/*
@@ -251,9 +186,10 @@ inline struct mwifiex_linked_list *
mwifiex_util_dequeue_list(struct mwifiex_list_head *head, u8 lock_required)
{
struct mwifiex_linked_list *node;
+ unsigned long flags = 0;
if (lock_required)
- mwifiex_spin_lock(head->lock);
+ spin_lock_irqsave(&head->lock, flags);
node = head->next;
if (node != (struct mwifiex_linked_list *) head)
@@ -262,7 +198,7 @@ mwifiex_util_dequeue_list(struct mwifiex_list_head *head, u8 lock_required)
node = NULL;
if (lock_required)
- mwifiex_spin_unlock(head->lock);
+ spin_unlock_irqrestore(&head->lock, flags);
return node;
}
diff --git a/drivers/net/wireless/mwifiex/util.h b/drivers/net/wireless/mwifiex/util.h
index aaae399..9996398 100644
--- a/drivers/net/wireless/mwifiex/util.h
+++ b/drivers/net/wireless/mwifiex/util.h
@@ -103,12 +103,6 @@ do { \
mwifiex_print(MHEX_DUMP | MINFO, x, y, z); \
} while (0)
-
-struct mwifiex_lock {
- spinlock_t lock; /* lock for mutual exclusion access */
- unsigned long flags;
-};
-
struct mwifiex_linked_list {
struct mwifiex_linked_list *prev;
struct mwifiex_linked_list *next;
@@ -117,13 +111,10 @@ struct mwifiex_linked_list {
struct mwifiex_list_head {
struct mwifiex_linked_list *prev;
struct mwifiex_linked_list *next;
- void *lock;
+ /* spin lock used for linked list operations */
+ spinlock_t lock;
};
-enum mwifiex_status mwifiex_init_lock(void **lock);
-enum mwifiex_status mwifiex_free_lock(void *lock);
-enum mwifiex_status mwifiex_spin_lock(void *lock);
-enum mwifiex_status mwifiex_spin_unlock(void *lock);
void mwifiex_util_init_list_head(struct mwifiex_list_head *head,
u8 lock_required);
void mwifiex_util_enqueue_list_tail(struct mwifiex_list_head *head,
@@ -157,9 +148,6 @@ mwifiex_util_free_list_head(struct mwifiex_list_head *head)
{
head->next = NULL;
head->prev = head->next;
-
- if (head->lock)
- mwifiex_free_lock(head->lock);
}
struct mwifiex_drv_timer {
diff --git a/drivers/net/wireless/mwifiex/wmm.c b/drivers/net/wireless/mwifiex/wmm.c
index 3993845..4cdaaa4 100644
--- a/drivers/net/wireless/mwifiex/wmm.c
+++ b/drivers/net/wireless/mwifiex/wmm.c
@@ -147,10 +147,12 @@ done:
void
mwifiex_clean_txrx(struct mwifiex_private *priv)
{
+ unsigned long flags;
+
ENTER();
mwifiex_11n_cleanup_reorder_tbl(priv);
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
mwifiex_wmm_cleanup_queues(priv);
mwifiex_11n_delete_all_tx_ba_stream_tbl(priv);
@@ -161,7 +163,7 @@ mwifiex_clean_txrx(struct mwifiex_private *priv)
mwifiex_wmm_delete_all_ralist(priv);
memcpy(tos_to_tid, ac_to_tid, sizeof(tos_to_tid));
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
LEAVE();
}
@@ -666,7 +668,7 @@ mwifiex_wmm_delete_all_ralist(struct mwifiex_private *priv)
}
mwifiex_util_init_list((struct mwifiex_linked_list *)
- &priv->wmm.tid_tbl_ptr[i].ra_list);
+ &priv->wmm.tid_tbl_ptr[i].ra_list);
priv->wmm.tid_tbl_ptr[i].ra_list_curr = NULL;
}
@@ -773,6 +775,7 @@ mwifiex_wmm_add_buf_txqueue(struct mwifiex_adapter *adapter,
u32 tid;
struct mwifiex_ra_list_tbl *ra_list;
u8 ra[MWIFIEX_MAC_ADDR_LENGTH], tid_down;
+ unsigned long flags;
ENTER();
@@ -788,7 +791,7 @@ mwifiex_wmm_add_buf_txqueue(struct mwifiex_adapter *adapter,
tid = mbuf->priority;
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
tid_down = mwifiex_wmm_downgrade_tid(priv, tid);
@@ -807,7 +810,7 @@ mwifiex_wmm_add_buf_txqueue(struct mwifiex_adapter *adapter,
}
if (!ra_list) {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
mwifiex_send_packet_complete(adapter, mbuf,
MWIFIEX_STATUS_FAILURE);
LEAVE();
@@ -821,7 +824,7 @@ mwifiex_wmm_add_buf_txqueue(struct mwifiex_adapter *adapter,
ra_list->total_pkts_size += mbuf->data_len;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
LEAVE();
}
@@ -1150,7 +1153,9 @@ mwifiex_num_pkts_in_txq(struct mwifiex_private *priv,
*/
static void
mwifiex_send_single_packet(struct mwifiex_private *priv,
- struct mwifiex_ra_list_tbl *ptr, int ptr_index)
+ struct mwifiex_ra_list_tbl *ptr, int ptr_index,
+ unsigned long flags)
+ __releases(&priv->wmm.ra_list_spinlock)
{
struct mwifiex_buffer *mbuf;
struct mwifiex_buffer *mbuf_next;
@@ -1170,7 +1175,7 @@ mwifiex_send_single_packet(struct mwifiex_private *priv,
(struct mwifiex_buffer *) mwifiex_util_peek_list(&ptr->
buf_head,
false);
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
tx_param.next_pkt_len =
((mbuf_next) ? mbuf_next->data_len +
@@ -1181,10 +1186,12 @@ mwifiex_send_single_packet(struct mwifiex_private *priv,
/** Queue the packet back at the head */
PRINTM(MDAT_D, "Queuing pkt back to raList %p %p\n",
ptr, mbuf);
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (!mwifiex_is_ralist_valid(priv, ptr, ptr_index)) {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(
+ &priv->wmm.ra_list_spinlock,
+ flags);
mwifiex_write_data_complete(adapter, mbuf,
MWIFIEX_STATUS_FAILURE);
LEAVE();
@@ -1196,9 +1203,10 @@ mwifiex_send_single_packet(struct mwifiex_private *priv,
ptr->total_pkts_size += mbuf->data_len;
mbuf->flags |= MWIFIEX_BUF_FLAG_REQUEUED_PKT;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
} else {
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (mwifiex_is_ralist_valid(priv, ptr, ptr_index)) {
priv->wmm.packets_out[ptr_index]++;
priv->wmm.tid_tbl_ptr[ptr_index].ra_list_curr =
@@ -1207,10 +1215,11 @@ mwifiex_send_single_packet(struct mwifiex_private *priv,
adapter->bss_prio_tbl[priv->bss_priority].bss_prio_cur =
adapter->bss_prio_tbl[priv->bss_priority].
bss_prio_cur->next;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
}
} else {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
PRINTM(MDATA, "Nothing to send\n");
}
@@ -1241,7 +1250,9 @@ mwifiex_is_ptr_processed(struct mwifiex_private *priv,
*/
static void
mwifiex_send_processed_packet(struct mwifiex_private *priv,
- struct mwifiex_ra_list_tbl *ptr, int ptr_index)
+ struct mwifiex_ra_list_tbl *ptr, int ptr_index,
+ unsigned long flags)
+ __releases(&priv->wmm.ra_list_spinlock)
{
struct mwifiex_buffer *mbuf_next;
struct mwifiex_tx_param tx_param;
@@ -1258,7 +1269,7 @@ mwifiex_send_processed_packet(struct mwifiex_private *priv,
(struct mwifiex_buffer *) mwifiex_util_peek_list(&ptr->
buf_head,
false);
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
tx_param.next_pkt_len =
((mbuf_next) ? mbuf_next->data_len +
sizeof(struct txpd) : 0);
@@ -1268,10 +1279,12 @@ mwifiex_send_processed_packet(struct mwifiex_private *priv,
switch (ret) {
case MWIFIEX_STATUS_RESOURCE:
PRINTM(MDATA, "MWIFIEX_STATUS_RESOURCE is returned\n");
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (!mwifiex_is_ralist_valid(priv, ptr, ptr_index)) {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(
+ &priv->wmm.ra_list_spinlock,
+ flags);
mwifiex_write_data_complete(adapter, mbuf,
MWIFIEX_STATUS_FAILURE);
LEAVE();
@@ -1282,7 +1295,8 @@ mwifiex_send_processed_packet(struct mwifiex_private *priv,
mbuf, true);
mbuf->flags |= MWIFIEX_BUF_FLAG_REQUEUED_PKT;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
break;
case MWIFIEX_STATUS_FAILURE:
adapter->data_sent = false;
@@ -1297,7 +1311,7 @@ mwifiex_send_processed_packet(struct mwifiex_private *priv,
break;
}
if (ret != MWIFIEX_STATUS_RESOURCE) {
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (mwifiex_is_ralist_valid(priv, ptr, ptr_index)) {
priv->wmm.packets_out[ptr_index]++;
priv->wmm.tid_tbl_ptr[ptr_index].ra_list_curr =
@@ -1306,10 +1320,11 @@ mwifiex_send_processed_packet(struct mwifiex_private *priv,
adapter->bss_prio_tbl[priv->bss_priority].bss_prio_cur =
adapter->bss_prio_tbl[priv->bss_priority].
bss_prio_cur->next;
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock,
+ flags);
}
} else {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
}
LEAVE();
@@ -1327,6 +1342,7 @@ mwifiex_dequeue_tx_packet(struct mwifiex_adapter *adapter)
int ptr_index = 0;
u8 ra[MWIFIEX_MAC_ADDR_LENGTH];
int tid_del = 0, tid = 0;
+ unsigned long flags;
ENTER();
@@ -1341,15 +1357,15 @@ mwifiex_dequeue_tx_packet(struct mwifiex_adapter *adapter)
PRINTM(MDATA, "tid=%d\n", tid);
- mwifiex_spin_lock(priv->wmm.ra_list_spinlock);
+ spin_lock_irqsave(&priv->wmm.ra_list_spinlock, flags);
if (!mwifiex_is_ralist_valid(priv, ptr, ptr_index)) {
- mwifiex_spin_unlock(priv->wmm.ra_list_spinlock);
+ spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags);
LEAVE();
return MWIFIEX_STATUS_FAILURE;
}
if (mwifiex_is_ptr_processed(priv, ptr)) {
- mwifiex_send_processed_packet(priv, ptr, ptr_index);
+ mwifiex_send_processed_packet(priv, ptr, ptr_index, flags);
/* ra_list_spinlock has been freed in
mwifiex_send_processed_packet() */
LEAVE();
@@ -1361,7 +1377,7 @@ mwifiex_dequeue_tx_packet(struct mwifiex_adapter *adapter)
((priv->sec_info.wpa_enabled
|| priv->sec_info.wpa2_enabled) && !priv->wpa_is_gtk_set))
) {
- mwifiex_send_single_packet(priv, ptr, ptr_index);
+ mwifiex_send_single_packet(priv, ptr, ptr_index, flags);
/* ra_list_spinlock has been freed in
mwifiex_send_single_packet() */
} else {
@@ -1388,11 +1404,11 @@ mwifiex_dequeue_tx_packet(struct mwifiex_adapter *adapter)
adapter->tx_buf_size) >=
MIN_NUM_AMSDU)) {
mwifiex_11n_aggregate_pkt(priv, ptr, INTF_HEADER_LEN,
- ptr_index);
+ ptr_index, flags);
/* ra_list_spinlock has been freed in
mwifiex_11n_aggregate_pkt() */
} else {
- mwifiex_send_single_packet(priv, ptr, ptr_index);
+ mwifiex_send_single_packet(priv, ptr, ptr_index, flags);
/* ra_list_spinlock has been freed in
mwifiex_send_single_packet() */
}
--
1.7.0.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 2/4] mwifiex: modify set_default_key() prototype
2010-12-16 0:57 [PATCH 1/4] mwifiex: remove wrapper functions for spin_lock/spin_unlock Bing Zhao
@ 2010-12-16 0:57 ` Bing Zhao
2010-12-16 0:57 ` [PATCH 3/4] mwifiex: keep exactly one space after #include Bing Zhao
2010-12-16 0:57 ` [PATCH 4/4] mwifiex: convert uses of __attribute__ ((packed)) to __packed Bing Zhao
2 siblings, 0 replies; 4+ messages in thread
From: Bing Zhao @ 2010-12-16 0:57 UTC (permalink / raw)
To: linux-wireless
Cc: John W. Linville, Johannes Berg, Amitkumar Karwar, Kiran Divekar,
Frank Huang, Bing Zhao
From: Amitkumar Karwar <akarwar@marvell.com>
This fixes compilation warning introduced recently due to
set_default_key prototype change in cfg80211.h (dbd2fd6 by
Johannes Berg):
cfg80211/nl80211: separate unicast/multicast default TX keys
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
---
drivers/net/wireless/mwifiex/cfg80211.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
index 99dade5..8d74446 100644
--- a/drivers/net/wireless/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
@@ -64,7 +64,8 @@ static int mwifiex_cfg80211_del_key(struct wiphy *wiphy,
static int mwifiex_cfg80211_set_default_key(struct wiphy *wiphy,
struct net_device *netdev,
- u8 key_index);
+ u8 key_index, bool unicast,
+ bool multicast);
static int mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
struct net_device *dev, bool enabled,
int timeout);
@@ -314,7 +315,8 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
*/
static int
mwifiex_cfg80211_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
- u8 key_index)
+ u8 key_index, bool unicast,
+ bool multicast)
{
return 0;
}
--
1.7.0.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/4] mwifiex: keep exactly one space after #include
2010-12-16 0:57 [PATCH 1/4] mwifiex: remove wrapper functions for spin_lock/spin_unlock Bing Zhao
2010-12-16 0:57 ` [PATCH 2/4] mwifiex: modify set_default_key() prototype Bing Zhao
@ 2010-12-16 0:57 ` Bing Zhao
2010-12-16 0:57 ` [PATCH 4/4] mwifiex: convert uses of __attribute__ ((packed)) to __packed Bing Zhao
2 siblings, 0 replies; 4+ messages in thread
From: Bing Zhao @ 2010-12-16 0:57 UTC (permalink / raw)
To: linux-wireless
Cc: John W. Linville, Johannes Berg, Amitkumar Karwar, Kiran Divekar,
Frank Huang, Bing Zhao
From: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
---
drivers/net/wireless/mwifiex/decl.h | 6 +++---
drivers/net/wireless/mwifiex/main.c | 6 +++---
drivers/net/wireless/mwifiex/main.h | 34 +++++++++++++++++-----------------
drivers/net/wireless/mwifiex/sdio.h | 10 +++++-----
4 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/decl.h b/drivers/net/wireless/mwifiex/decl.h
index ea27216..155c071 100644
--- a/drivers/net/wireless/mwifiex/decl.h
+++ b/drivers/net/wireless/mwifiex/decl.h
@@ -20,9 +20,9 @@
#ifndef _MWIFIEX_DECL_H_
#define _MWIFIEX_DECL_H_
-#include <linux/wait.h>
-#include <linux/timer.h>
-#include <linux/wireless.h>
+#include <linux/wait.h>
+#include <linux/timer.h>
+#include <linux/wireless.h>
#define MWIFIEX_MAX_BSS_NUM (1)
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c
index 09319db..4e1ac6f 100644
--- a/drivers/net/wireless/mwifiex/main.c
+++ b/drivers/net/wireless/mwifiex/main.c
@@ -17,9 +17,9 @@
* this warranty disclaimer.
**/
-#include "main.h"
-#include "wmm.h"
-#include "cfg80211.h"
+#include "main.h"
+#include "wmm.h"
+#include "cfg80211.h"
#define VERSION "1.0"
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index be7156c..8bb8b45 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -20,24 +20,24 @@
#ifndef _MWIFIEX_MAIN_H_
#define _MWIFIEX_MAIN_H_
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/semaphore.h>
-#include <linux/ip.h>
-#include <linux/skbuff.h>
-#include <linux/if_arp.h>
-#include <linux/etherdevice.h>
-#include <net/sock.h>
-#include <net/lib80211.h>
-#include <linux/firmware.h>
-#include <linux/ctype.h>
-
-#include "decl.h"
-#include "ioctl.h"
-#include "ieee.h"
-#include "util.h"
-#include "fw.h"
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/sched.h>
+#include <linux/semaphore.h>
+#include <linux/ip.h>
+#include <linux/skbuff.h>
+#include <linux/if_arp.h>
+#include <linux/etherdevice.h>
+#include <net/sock.h>
+#include <net/lib80211.h>
+#include <linux/firmware.h>
+#include <linux/ctype.h>
+
+#include "decl.h"
+#include "ioctl.h"
+#include "ieee.h"
+#include "util.h"
+#include "fw.h"
extern const char driver_version[];
extern struct mwifiex_adapter *g_adapter;
diff --git a/drivers/net/wireless/mwifiex/sdio.h b/drivers/net/wireless/mwifiex/sdio.h
index 116a1eb..5a70cd8 100644
--- a/drivers/net/wireless/mwifiex/sdio.h
+++ b/drivers/net/wireless/mwifiex/sdio.h
@@ -21,12 +21,12 @@
#define _MWIFIEX_SDIO_H
-#include <linux/mmc/sdio.h>
-#include <linux/mmc/sdio_ids.h>
-#include <linux/mmc/sdio_func.h>
-#include <linux/mmc/card.h>
+#include <linux/mmc/sdio.h>
+#include <linux/mmc/sdio_ids.h>
+#include <linux/mmc/sdio_func.h>
+#include <linux/mmc/card.h>
-#include "main.h"
+#include "main.h"
#define BLOCK_MODE 1
#define BYTE_MODE 0
--
1.7.0.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 4/4] mwifiex: convert uses of __attribute__ ((packed)) to __packed
2010-12-16 0:57 [PATCH 1/4] mwifiex: remove wrapper functions for spin_lock/spin_unlock Bing Zhao
2010-12-16 0:57 ` [PATCH 2/4] mwifiex: modify set_default_key() prototype Bing Zhao
2010-12-16 0:57 ` [PATCH 3/4] mwifiex: keep exactly one space after #include Bing Zhao
@ 2010-12-16 0:57 ` Bing Zhao
2 siblings, 0 replies; 4+ messages in thread
From: Bing Zhao @ 2010-12-16 0:57 UTC (permalink / raw)
To: linux-wireless
Cc: John W. Linville, Johannes Berg, Amitkumar Karwar, Kiran Divekar,
Frank Huang, Bing Zhao
From: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
---
drivers/net/wireless/mwifiex/decl.h | 8 +-
drivers/net/wireless/mwifiex/fw.h | 180 +++++++++++++++++-----------------
drivers/net/wireless/mwifiex/ieee.h | 50 +++++-----
3 files changed, 119 insertions(+), 119 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/decl.h b/drivers/net/wireless/mwifiex/decl.h
index 155c071..95d9642 100644
--- a/drivers/net/wireless/mwifiex/decl.h
+++ b/drivers/net/wireless/mwifiex/decl.h
@@ -224,21 +224,21 @@ enum mwifiex_cmd_result_e {
MWIFIEX_CMD_RESULT_FAILURE = 1,
MWIFIEX_CMD_RESULT_TIMEOUT = 2,
MWIFIEX_CMD_RESULT_INVALID_DATA = 3
-} __attribute__ ((packed));
+} __packed;
enum mwifiex_wmm_ac_e {
WMM_AC_BK,
WMM_AC_BE,
WMM_AC_VI,
WMM_AC_VO
-} __attribute__ ((packed));
+} __packed;
enum mwifiex_wmm_queue_config_action_e {
MWIFIEX_WMM_QUEUE_CONFIG_ACTION_GET = 0,
MWIFIEX_WMM_QUEUE_CONFIG_ACTION_SET = 1,
MWIFIEX_WMM_QUEUE_CONFIG_ACTION_DEFAULT = 2,
MWIFIEX_WMM_QUEUE_CONFIG_ACTION_MAX
-} __attribute__ ((packed));
+} __packed;
enum mwifiex_wmm_queue_stats_action_e {
MWIFIEX_WMM_STATS_ACTION_START = 0,
@@ -247,7 +247,7 @@ enum mwifiex_wmm_queue_stats_action_e {
MWIFIEX_WMM_STATS_ACTION_SET_CFG = 3, /* Not currently used */
MWIFIEX_WMM_STATS_ACTION_GET_CFG = 4, /* Not currently used */
MWIFIEX_WMM_STATS_ACTION_MAX
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_device {
struct mwifiex_bss_attr bss_attr[MWIFIEX_MAX_BSS_NUM];
diff --git a/drivers/net/wireless/mwifiex/fw.h b/drivers/net/wireless/mwifiex/fw.h
index 16cdb85..834122c 100644
--- a/drivers/net/wireless/mwifiex/fw.h
+++ b/drivers/net/wireless/mwifiex/fw.h
@@ -481,12 +481,12 @@ struct mwifiex_802_11_fixed_ies {
struct mwifiex_ie_types_header {
__le16 type;
__le16 len;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_data {
struct mwifiex_ie_types_header header;
u8 data[1];
-} __attribute__ ((packed));
+} __packed;
#define MWIFIEX_TxPD_POWER_MGMT_NULL_PACKET 0x01
#define MWIFIEX_TxPD_POWER_MGMT_LAST_PACKET 0x08
@@ -502,7 +502,7 @@ struct txpd {
u8 flags;
u8 pkt_delay_2ms;
u8 reserved1;
-} __attribute__ ((packed));
+} __packed;
struct rxpd {
u8 bss_type;
@@ -520,7 +520,7 @@ struct rxpd {
* [Bit 2] HT Guard Interval: LGI = 0, SGI = 1 */
u8 ht_info;
u8 reserved;
-} __attribute__ ((packed));
+} __packed;
enum mwifiex_chan_scan_mode_bitmasks {
MWIFIEX_PASSIVE_SCAN = BIT(0),
@@ -535,12 +535,12 @@ struct mwifiex_chan_scan_param_set {
u8 chan_scan_mode_bitmap;
__le16 min_scan_time;
__le16 max_scan_time;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_chan_list_param_set {
struct mwifiex_ie_types_header header;
struct mwifiex_chan_scan_param_set chan_scan_param[1];
-} __attribute__ ((packed));
+} __packed;
struct chan_band_param_set {
u8 radio_type;
@@ -550,45 +550,45 @@ struct chan_band_param_set {
struct mwifiex_ie_types_chan_band_list_param_set {
struct mwifiex_ie_types_header header;
struct chan_band_param_set chan_band_param[1];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_rates_param_set {
struct mwifiex_ie_types_header header;
u8 rates[1];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_ssid_param_set {
struct mwifiex_ie_types_header header;
u8 ssid[1];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_num_probes {
struct mwifiex_ie_types_header header;
__le16 num_probes;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_wildcard_ssid_params {
struct mwifiex_ie_types_header header;
u8 max_ssid_length;
u8 ssid[1];
-} __attribute__ ((packed));
+} __packed;
#define TSF_DATA_SIZE 8
struct mwifiex_ie_types_tsf_timestamp {
struct mwifiex_ie_types_header header;
u8 tsf_data[1];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_cf_param_set {
u8 cfp_cnt;
u8 cfp_period;
u16 cfp_max_duration;
u16 cfp_duration_remaining;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ibss_param_set {
u16 atim_window;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_ss_param_set {
struct mwifiex_ie_types_header header;
@@ -596,18 +596,18 @@ struct mwifiex_ie_types_ss_param_set {
struct mwifiex_cf_param_set cf_param_set[1];
struct mwifiex_ibss_param_set ibss_param_set[1];
} cf_ibss;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_fh_param_set {
u16 dwell_time;
u8 hop_set;
u8 hop_pattern;
u8 hop_index;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ds_param_set {
u8 current_chan;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_phy_param_set {
struct mwifiex_ie_types_header header;
@@ -615,12 +615,12 @@ struct mwifiex_ie_types_phy_param_set {
struct mwifiex_fh_param_set fh_param_set[1];
struct mwifiex_ds_param_set ds_param_set[1];
} fh_ds;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_auth_type {
struct mwifiex_ie_types_header header;
__le16 auth_type;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_vendor_param_set {
struct mwifiex_ie_types_header header;
@@ -630,7 +630,7 @@ struct mwifiex_ie_types_vendor_param_set {
struct mwifiex_ie_types_rsn_param_set {
struct mwifiex_ie_types_header header;
u8 rsn_ie[1];
-} __attribute__ ((packed));
+} __packed;
#define KEYPARAMSET_FIXED_LEN 6
@@ -641,12 +641,12 @@ struct mwifiex_ie_type_key_param_set {
__le16 key_info;
__le16 key_len;
u8 key[50];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_key_material {
__le16 action;
struct mwifiex_ie_type_key_param_set key_param_set;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_gen {
u16 command;
@@ -660,7 +660,7 @@ struct host_cmd_ds_gen {
struct host_cmd_ds_802_11_sleep_period {
__le16 action;
__le16 sleep_pd;
-} __attribute__ ((packed));
+} __packed;
enum sleep_resp_ctrl {
RESP_NOT_NEEDED = 0,
@@ -705,12 +705,12 @@ struct auto_ps_param {
struct mwifiex_ie_types_auto_ds_param {
struct mwifiex_ie_types_header header;
struct mwifiex_auto_ds_param param;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_ps_param {
struct mwifiex_ie_types_header header;
struct mwifiex_ps_param param;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_ps_mode_enh {
__le16 action;
@@ -722,7 +722,7 @@ struct host_cmd_ds_802_11_ps_mode_enh {
__le16 ps_bitmap;
struct auto_ps_param auto_ps;
} params;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_get_hw_spec {
__le16 hw_if_version;
@@ -741,7 +741,7 @@ struct host_cmd_ds_get_hw_spec {
u8 dev_mcs_support;
__le16 mp_end_port; /* SDIO only, reserved for other interfacces */
__le16 reserved_4;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_rssi_info {
__le16 action;
@@ -781,12 +781,12 @@ struct host_cmd_ds_mac_multicast_adr {
__le16 num_of_adrs;
u8 mac_list[MWIFIEX_MAC_ADDR_LENGTH *
MWIFIEX_MAX_MULTICAST_LIST_SIZE];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_deauthenticate {
u8 mac_addr[MWIFIEX_MAC_ADDR_LENGTH];
__le16 reason_code;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_associate {
u8 peer_sta_addr[MWIFIEX_MAC_ADDR_LENGTH];
@@ -794,11 +794,11 @@ struct host_cmd_ds_802_11_associate {
__le16 listen_interval;
__le16 beacon_period;
u8 dtim_period;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_associate_rsp {
struct ieee_types_assoc_rsp assoc_rsp;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_ad_hoc_start {
u8 ssid[IW_ESSID_MAX_SIZE];
@@ -810,12 +810,12 @@ struct host_cmd_ds_802_11_ad_hoc_start {
u16 reserved1;
__le16 cap_info_bitmap;
u8 DataRate[HOSTCMD_SUPPORTED_RATES];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_ad_hoc_result {
u8 pad[3];
u8 bssid[MWIFIEX_MAC_ADDR_LENGTH];
-} __attribute__ ((packed));
+} __packed;
struct adhoc_bss_desc {
u8 bssid[MWIFIEX_MAC_ADDR_LENGTH];
@@ -835,13 +835,13 @@ struct adhoc_bss_desc {
* It is used in the Adhoc join command and will cause a
* binary layout mismatch with the firmware
*/
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_ad_hoc_join {
struct adhoc_bss_desc bss_descriptor;
u16 reserved1;
u16 reserved2;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_get_log {
__le32 mcast_tx_frame;
@@ -866,7 +866,7 @@ struct host_cmd_ds_tx_rate_query {
* [Bit 1] HT Bandwidth: BW20 = 0, BW40 = 1
* [Bit 2] HT Guard Interval: LGI = 0, SGI = 1 */
u8 ht_info;
-} __attribute__ ((packed));
+} __packed;
enum Host_Sleep_Action {
HS_CONFIGURE = 0x0001,
@@ -877,11 +877,11 @@ struct mwifiex_hs_config_param {
__le32 conditions;
u8 gpio;
u8 gap;
-} __attribute__ ((packed));
+} __packed;
struct hs_activate_param {
u16 resp_ctrl;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_hs_cfg_enh {
__le16 action;
@@ -890,7 +890,7 @@ struct host_cmd_ds_802_11_hs_cfg_enh {
struct mwifiex_hs_config_param hs_config;
struct hs_activate_param hs_activate;
} params;
-} __attribute__ ((packed));
+} __packed;
enum SNMP_MIB_INDEX {
OP_RATE_SET_I = 1,
@@ -909,7 +909,7 @@ struct host_cmd_ds_802_11_snmp_mib {
__le16 oid;
__le16 buf_size;
u8 value[1];
-} __attribute__ ((packed));
+} __packed;
#define RADIO_ON 0x01
#define RADIO_OFF 0x00
@@ -920,18 +920,18 @@ struct mwifiex_rate_scope {
__le16 hr_dsss_rate_bitmap;
__le16 ofdm_rate_bitmap;
__le16 ht_mcs_rate_bitmap[8];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_rate_drop_pattern {
__le16 type;
__le16 length;
__le32 rate_drop_mode;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_tx_rate_cfg {
__le16 action;
__le16 cfg_index;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_power_group {
u8 modulation_class;
@@ -942,18 +942,18 @@ struct mwifiex_power_group {
s8 power_max;
u8 ht_bandwidth;
u8 reserved;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_types_power_group {
u16 type;
u16 length;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_txpwr_cfg {
__le16 action;
__le16 cfg_index;
__le32 mode;
-} __attribute__ ((packed));
+} __packed;
#define MWIFIEX_USER_SCAN_CHAN_MAX 50
@@ -990,7 +990,7 @@ struct mwifiex_scan_cmd_config {
*/
u8 tlv_buf[1]; /* SSID TLV(s) and ChanList TLVs are stored
here */
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_user_scan_chan {
u8 chan_number;
@@ -998,12 +998,12 @@ struct mwifiex_user_scan_chan {
u8 scan_type;
u8 reserved;
u32 scan_time;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_user_scan_ssid {
u8 ssid[IW_ESSID_MAX_SIZE + 1];
u8 max_len;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_user_scan_cfg {
/**
@@ -1044,50 +1044,50 @@ struct mwifiex_user_scan_cfg {
* Variable number (fixed maximum) of channels to scan up
*/
struct mwifiex_user_scan_chan chan_list[MWIFIEX_USER_SCAN_CHAN_MAX];
-} __attribute__ ((packed));
+} __packed;
struct ie_body {
u8 grp_key_oui[4];
u8 ptk_cnt[2];
u8 ptk_body[4];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_scan {
u8 bss_mode;
u8 bssid[MWIFIEX_MAC_ADDR_LENGTH];
u8 tlv_buffer[1];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_scan_rsp {
__le16 bss_descript_size;
u8 number_of_sets;
u8 bss_desc_and_tlv_buffer[1];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_bg_scan_query {
u8 flush;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_bg_scan_query_rsp {
u32 report_condition;
struct host_cmd_ds_802_11_scan_rsp scan_resp;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ietypes_domain_param_set {
struct mwifiex_ie_types_header header;
u8 country_code[COUNTRY_CODE_LEN];
struct ieee80211_country_ie_triplet triplet[1];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11d_domain_info {
__le16 action;
struct mwifiex_ietypes_domain_param_set domain;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11d_domain_info_rsp {
__le16 action;
struct mwifiex_ietypes_domain_param_set domain;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_11n_addba_req {
u8 add_req_result;
@@ -1096,7 +1096,7 @@ struct host_cmd_ds_11n_addba_req {
__le16 block_ack_param_set;
__le16 block_ack_tmo;
__le16 ssn;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_11n_addba_rsp {
u8 add_rsp_result;
@@ -1106,7 +1106,7 @@ struct host_cmd_ds_11n_addba_rsp {
__le16 block_ack_param_set;
__le16 block_ack_tmo;
__le16 ssn;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_11n_delba {
u8 del_result;
@@ -1114,32 +1114,32 @@ struct host_cmd_ds_11n_delba {
__le16 del_ba_param_set;
__le16 reason_code;
u8 reserved;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_11n_batimeout {
u8 tid;
u8 peer_mac_addr[MWIFIEX_MAC_ADDR_LENGTH];
u8 origninator;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_11n_cfg {
__le16 action;
__le16 ht_tx_cap;
__le16 ht_tx_info;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_txbuf_cfg {
__le16 action;
__le16 buff_size;
__le16 mp_end_port; /* SDIO only, reserved for other interfacces */
__le16 reserved3;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_amsdu_aggr_ctrl {
__le16 action;
__le16 enable;
__le16 curr_buf_size;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_wmm_param_set {
struct mwifiex_ie_types_header header;
@@ -1160,7 +1160,7 @@ struct host_cmd_ds_wmm_get_status {
u8 queue_status_tlv[sizeof(struct mwifiex_ie_types_wmm_queue_status) *
IEEE80211_MAX_QUEUES];
u8 wmm_param_tlv[sizeof(struct ieee_types_wmm_parameter) + 2];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_wmm_ac_status {
u8 disabled;
@@ -1171,32 +1171,32 @@ struct mwifiex_wmm_ac_status {
struct mwifiex_ie_types_htcap {
struct mwifiex_ie_types_header header;
struct ieee_htcap ht_cap;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_htinfo {
struct mwifiex_ie_types_header header;
struct ieee_htinfo ht_info;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_2040bssco {
struct mwifiex_ie_types_header header;
struct ieee_bssco_2040 bss_co_2040;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_extcap {
struct mwifiex_ie_types_header header;
struct ieee_extcap ext_cap;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_pmk {
struct mwifiex_ie_types_header header;
u8 pmk[1];
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_passphrase {
struct mwifiex_ie_types_header header;
char passphrase[1];
-} __attribute__ ((packed));
+} __packed;
/* unicastcipher:
* Bit 0 : RFU
@@ -1215,7 +1215,7 @@ struct mwifiex_ie_types_cipher {
struct mwifiex_ie_types_header header;
u8 pair_cipher;
u8 group_cipher;
-} __attribute__ ((packed));
+} __packed;
/* rsnMode:
* Bit 0 : No RSN
@@ -1229,12 +1229,12 @@ struct mwifiex_ie_types_cipher {
struct mwifiex_ie_types_encrproto {
struct mwifiex_ie_types_header header;
__le16 rsn_mode;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_ie_types_bssid {
struct mwifiex_ie_types_header header;
u8 bssid[MWIFIEX_MAC_ADDR_LENGTH];
-} __attribute__ ((packed));
+} __packed;
/*
* This struct will handle GET,SET,CLEAR function for embedded
@@ -1250,7 +1250,7 @@ struct host_cmd_ds_802_11_supplicant_pmk {
* mwifiex_ie_types_passphrase passphrase;
* mwifiex_ie_types_bssid bssid;
*/
-} __attribute__ ((packed));
+} __packed;
/*
* This struct will GET the Supplicant supported bitmaps
@@ -1263,34 +1263,34 @@ struct host_cmd_ds_802_11_supplicant_profile {
__le16 reserved;
u8 tlv_buf[1];
/* mwifiex_ie_types_encrproto */
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_mac_reg_access {
__le16 action;
__le16 offset;
__le32 value;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_bbp_reg_access {
__le16 action;
__le16 offset;
u8 value;
u8 reserved[3];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_rf_reg_access {
__le16 action;
__le16 offset;
u8 value;
u8 reserved[3];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_pmic_reg_access {
__le16 action;
__le16 offset;
u8 value;
u8 reserved[3];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_eeprom_access {
__le16 action;
@@ -1298,7 +1298,7 @@ struct host_cmd_ds_802_11_eeprom_access {
__le16 offset;
__le16 byte_count;
u8 value;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_rf_channel {
__le16 action;
@@ -1306,17 +1306,17 @@ struct host_cmd_ds_802_11_rf_channel {
__le16 rf_type;
__le16 reserved;
u8 reserved_1[32];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_version_ext {
u8 version_str_sel;
char version_str[128];
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_rf_antenna {
__le16 action;
__le16 antenna_mode;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_802_11_ibss_status {
__le16 action;
@@ -1325,14 +1325,14 @@ struct host_cmd_ds_802_11_ibss_status {
__le16 beacon_interval;
__le16 atim_window;
__le16 use_g_rate_protect;
-} __attribute__ ((packed));
+} __packed;
#define CONNECTION_TYPE_INFRA 0
#define CONNECTION_TYPE_ADHOC 1
struct host_cmd_ds_set_bss_mode {
u8 con_type;
-} __attribute__ ((packed));
+} __packed;
struct host_cmd_ds_command {
__le16 command;
@@ -1387,7 +1387,7 @@ struct host_cmd_ds_command {
struct host_cmd_ds_802_11_eeprom_access eeprom;
struct host_cmd_ds_802_11_sleep_period sleep_pd;
} params;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_opt_sleep_confirm {
__le16 command;
@@ -1396,10 +1396,10 @@ struct mwifiex_opt_sleep_confirm {
__le16 result;
__le16 action;
struct sleep_confirm_param sleep_cfm;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_opt_sleep_confirm_buffer {
u8 hdr[4];
struct mwifiex_opt_sleep_confirm ps_cfm_sleep;
-} __attribute__ ((packed));
+} __packed;
#endif /* !_MWIFIEX_FW_H_ */
diff --git a/drivers/net/wireless/mwifiex/ieee.h b/drivers/net/wireless/mwifiex/ieee.h
index ae85c8a..263380c 100644
--- a/drivers/net/wireless/mwifiex/ieee.h
+++ b/drivers/net/wireless/mwifiex/ieee.h
@@ -29,7 +29,7 @@
struct ieee_types_header {
u8 element_id;
u8 len;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_vendor_header {
u8 element_id;
@@ -38,17 +38,17 @@ struct ieee_types_vendor_header {
u8 oui_type;
u8 oui_subtype;
u8 version;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_vendor_specific {
struct ieee_types_vendor_header vend_hdr;
u8 data[IEEE_MAX_IE_SIZE - sizeof(struct ieee_types_vendor_header)];
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_generic {
struct ieee_types_header ieee_hdr;
u8 data[IEEE_MAX_IE_SIZE - sizeof(struct ieee_types_header)];
-} __attribute__ ((packed));
+} __packed;
#define CAPINFO_MASK (~(BIT(15) | BIT(14) | \
BIT(12) | BIT(11) | BIT(9)))
@@ -60,18 +60,18 @@ struct ieee_types_cf_param_set {
u8 cfp_period;
u16 cfp_max_duration;
u16 cfp_duration_remaining;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_ibss_param_set {
u8 element_id;
u8 len;
__le16 atim_window;
-} __attribute__ ((packed));
+} __packed;
union ieee_types_ss_param_set {
struct ieee_types_cf_param_set cf_param_set;
struct ieee_types_ibss_param_set ibss_param_set;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_fh_param_set {
u8 element_id;
@@ -80,31 +80,31 @@ struct ieee_types_fh_param_set {
u8 hop_set;
u8 hop_pattern;
u8 hop_index;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_ds_param_set {
u8 element_id;
u8 len;
u8 current_chan;
-} __attribute__ ((packed));
+} __packed;
union ieee_types_phy_param_set {
struct ieee_types_fh_param_set fh_param_set;
struct ieee_types_ds_param_set ds_param_set;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_erp_info {
u8 element_id;
u8 len;
u8 erp_flags;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_assoc_rsp {
__le16 cap_info_bitmap;
__le16 status_code;
__le16 a_id;
u8 ie_buffer[1];
-} __attribute__ ((packed));
+} __packed;
enum ieee_types_wmm_aciaifsn_bitmasks {
MWIFIEX_AIFSN = (BIT(0) | BIT(1) | BIT(2) | BIT(3)),
@@ -121,7 +121,7 @@ struct ieee_types_wmm_ac_parameters {
u8 aci_aifsn_bitmap;
u8 ecw_bitmap;
__le16 tx_op_limit;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_wmm_info {
@@ -137,7 +137,7 @@ struct ieee_types_wmm_info {
struct ieee_types_vendor_header vend_hdr;
u8 qos_info_bitmap;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_wmm_parameter {
/**
@@ -153,7 +153,7 @@ struct ieee_types_wmm_parameter {
u8 qos_info_bitmap;
u8 reserved;
struct ieee_types_wmm_ac_parameters ac_params[IEEE80211_MAX_QUEUES];
-} __attribute__ ((packed));
+} __packed;
#define MWIFIEX_MAX_TRIPLET_802_11D 83
#define COUNTRY_CODE_LEN 3
@@ -165,7 +165,7 @@ struct ieee_htcap {
__le16 ht_ext_cap;
u32 tx_bf_cap;
u8 asel;
-} __attribute__ ((packed));
+} __packed;
struct ieee_htinfo {
u8 pri_chan;
@@ -173,15 +173,15 @@ struct ieee_htinfo {
u16 field3;
u16 field4;
u8 basic_mcs_set[16];
-} __attribute__ ((packed));
+} __packed;
struct ieee_bssco_2040 {
u8 bss_co_2040_value;
-} __attribute__ ((packed));
+} __packed;
struct ieee_extcap {
u8 ext_cap_value;
-} __attribute__ ((packed));
+} __packed;
struct ieee_obss_scan_param {
u16 obss_scan_passive_dwell;
@@ -191,32 +191,32 @@ struct ieee_obss_scan_param {
u16 obss_scan_active_total;
u16 bss_width_chan_trans_delay;
u16 obss_scan_active_threshold;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_htcap {
struct ieee_types_header ieee_hdr;
struct ieee_htcap ht_cap;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_htinfo {
struct ieee_types_header ieee_hdr;
struct ieee_htinfo ht_info;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_2040bssco {
struct ieee_types_header ieee_hdr;
struct ieee_bssco_2040 bss_co_2040;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_extcap {
struct ieee_types_header ieee_hdr;
struct ieee_extcap ext_cap;
-} __attribute__ ((packed));
+} __packed;
struct ieee_types_obss_scan_param {
struct ieee_types_header ieee_hdr;
struct ieee_obss_scan_param obss_scan;
-} __attribute__ ((packed));
+} __packed;
struct mwifiex_bssdescriptor {
u8 mac_address[MWIFIEX_MAC_ADDR_LENGTH];
--
1.7.0.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-12-16 0:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-16 0:57 [PATCH 1/4] mwifiex: remove wrapper functions for spin_lock/spin_unlock Bing Zhao
2010-12-16 0:57 ` [PATCH 2/4] mwifiex: modify set_default_key() prototype Bing Zhao
2010-12-16 0:57 ` [PATCH 3/4] mwifiex: keep exactly one space after #include Bing Zhao
2010-12-16 0:57 ` [PATCH 4/4] mwifiex: convert uses of __attribute__ ((packed)) to __packed Bing Zhao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox