aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorAndreas Fenkart <andreas.fenkart@streamunlimited.com>2013-04-04 23:03:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-08 15:28:39 -0400
commit6d2344ec6043a2de8cfa9d8f27909a99ca967a08 (patch)
tree3ec931eb2d47e9b20d344f52e8773f2d4f02a775 /drivers/net/wireless
parentca796a310367f97b91225404311d23f7eb883046 (diff)
mwifiex: remove unused tid_tbl_lock from mwifiex_tid_tbl
ra_list_spinlock is used to protect struct mwifiex_wmm_desc and embedded structures such as ra_list. tid_tbl_lock while more fine grained, is not used but in one function. That function is not called reentrantly. To protect ra_list from concurrent modification ra_list_spinlock must be held. Signed-off-by: Andreas Fenkart <andreas.fenkart@streamunlimited.com> Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/mwifiex/init.c4
-rw-r--r--drivers/net/wireless/mwifiex/main.h2
-rw-r--r--drivers/net/wireless/mwifiex/wmm.c8
3 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/wireless/mwifiex/init.c b/drivers/net/wireless/mwifiex/init.c
index 003c014d2176..42d7f0adf9bd 100644
--- a/drivers/net/wireless/mwifiex/init.c
+++ b/drivers/net/wireless/mwifiex/init.c
@@ -533,10 +533,8 @@ int mwifiex_init_lock_list(struct mwifiex_adapter *adapter)
533 if (!adapter->priv[i]) 533 if (!adapter->priv[i])
534 continue; 534 continue;
535 priv = adapter->priv[i]; 535 priv = adapter->priv[i];
536 for (j = 0; j < MAX_NUM_TID; ++j) { 536 for (j = 0; j < MAX_NUM_TID; ++j)
537 INIT_LIST_HEAD(&priv->wmm.tid_tbl_ptr[j].ra_list); 537 INIT_LIST_HEAD(&priv->wmm.tid_tbl_ptr[j].ra_list);
538 spin_lock_init(&priv->wmm.tid_tbl_ptr[j].tid_tbl_lock);
539 }
540 INIT_LIST_HEAD(&priv->tx_ba_stream_tbl_ptr); 538 INIT_LIST_HEAD(&priv->tx_ba_stream_tbl_ptr);
541 INIT_LIST_HEAD(&priv->rx_reorder_tbl_ptr); 539 INIT_LIST_HEAD(&priv->rx_reorder_tbl_ptr);
542 INIT_LIST_HEAD(&priv->sta_list); 540 INIT_LIST_HEAD(&priv->sta_list);
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index fef89fd6d77b..622b17f884f0 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -213,8 +213,6 @@ struct mwifiex_ra_list_tbl {
213 213
214struct mwifiex_tid_tbl { 214struct mwifiex_tid_tbl {
215 struct list_head ra_list; 215 struct list_head ra_list;
216 /* spin lock for tid table */
217 spinlock_t tid_tbl_lock;
218 struct mwifiex_ra_list_tbl *ra_list_curr; 216 struct mwifiex_ra_list_tbl *ra_list_curr;
219}; 217};
220 218
diff --git a/drivers/net/wireless/mwifiex/wmm.c b/drivers/net/wireless/mwifiex/wmm.c
index 1b039ba0d55b..c1d848882fe2 100644
--- a/drivers/net/wireless/mwifiex/wmm.c
+++ b/drivers/net/wireless/mwifiex/wmm.c
@@ -927,12 +927,12 @@ mwifiex_wmm_get_highest_priolist_ptr(struct mwifiex_adapter *adapter,
927 if (!tid_ptr->ra_list_curr) 927 if (!tid_ptr->ra_list_curr)
928 continue; 928 continue;
929 929
930 spin_lock_irqsave(&tid_ptr->tid_tbl_lock, 930 spin_lock_irqsave(&priv_tmp->wmm.
931 flags); 931 ra_list_spinlock, flags);
932 is_list_empty = 932 is_list_empty =
933 list_empty(&tid_ptr->ra_list); 933 list_empty(&tid_ptr->ra_list);
934 spin_unlock_irqrestore(&tid_ptr->tid_tbl_lock, 934 spin_unlock_irqrestore(&priv_tmp->wmm.
935 flags); 935 ra_list_spinlock, flags);
936 if (is_list_empty) 936 if (is_list_empty)
937 continue; 937 continue;
938 938