]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
mwifiex: remove_bss_prio_lock
authorZhaoyang Liu <liuzy@marvell.com>
Fri, 13 Mar 2015 12:07:56 +0000 (17:37 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 16 Mar 2015 16:12:30 +0000 (18:12 +0200)
This patch does away with spinlock in
mwifiex_wmm_get_highest_priolist_ptr in order to improve TP.

Signed-off-by: Zhaoyang Liu <liuzy@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mwifiex/wmm.c

index 2d14dd5856c3171a26f0b0e77a4fd1fd9752cfcf..a6db12cae76925852bd7b764a9a0cc255a3e4c73 100644 (file)
@@ -944,14 +944,11 @@ mwifiex_wmm_get_highest_priolist_ptr(struct mwifiex_adapter *adapter,
        struct mwifiex_ra_list_tbl *ptr;
        struct mwifiex_tid_tbl *tid_ptr;
        atomic_t *hqp;
-       unsigned long flags_bss, flags_ra;
+       unsigned long flags_ra;
        int i, j;
 
        /* check the BSS with highest priority first */
        for (j = adapter->priv_num - 1; j >= 0; --j) {
-               spin_lock_irqsave(&adapter->bss_prio_tbl[j].bss_prio_lock,
-                                 flags_bss);
-
                /* iterate over BSS with the equal priority */
                list_for_each_entry(adapter->bss_prio_tbl[j].bss_prio_cur,
                                    &adapter->bss_prio_tbl[j].bss_prio_head,
@@ -987,19 +984,15 @@ mwifiex_wmm_get_highest_priolist_ptr(struct mwifiex_adapter *adapter,
                        }
                }
 
-               spin_unlock_irqrestore(&adapter->bss_prio_tbl[j].bss_prio_lock,
-                                      flags_bss);
        }
 
        return NULL;
 
 found:
-       /* holds bss_prio_lock / ra_list_spinlock */
+       /* holds ra_list_spinlock */
        if (atomic_read(hqp) > i)
                atomic_set(hqp, i);
        spin_unlock_irqrestore(&priv_tmp->wmm.ra_list_spinlock, flags_ra);
-       spin_unlock_irqrestore(&adapter->bss_prio_tbl[j].bss_prio_lock,
-                              flags_bss);
 
        *priv = priv_tmp;
        *tid = tos_to_tid[i];