mwifiex: replace rx_pkt_lock by rx_reorder_tbl_lock
authorGanapathi Bhat <gbhat@marvell.com>
Wed, 27 Jun 2018 06:13:38 +0000 (11:43 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 31 Jul 2018 07:11:33 +0000 (10:11 +0300)
At present driver spinlock protects iteration of list
rx_reorder_tbl_ptr with rx_reorder_tbl_lock. To protect the
individual items in this list, it uses rx_pkt_lock. But, we can
use a single rx_reorder_tbl_lock for both purposes. This patch
replaces rx_pkt_lock by rx_reorder_tbl_lock.

Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c
drivers/net/wireless/marvell/mwifiex/init.c
drivers/net/wireless/marvell/mwifiex/main.h

index 7ab44cd..5380fba 100644 (file)
@@ -118,18 +118,18 @@ mwifiex_11n_dispatch_pkt_until_start_win(struct mwifiex_private *priv,
                      tbl->win_size;
 
        for (i = 0; i < pkt_to_send; ++i) {
-               spin_lock_irqsave(&priv->rx_pkt_lock, flags);
+               spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags);
                rx_tmp_ptr = NULL;
                if (tbl->rx_reorder_ptr[i]) {
                        rx_tmp_ptr = tbl->rx_reorder_ptr[i];
                        tbl->rx_reorder_ptr[i] = NULL;
                }
-               spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
+               spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags);
                if (rx_tmp_ptr)
                        mwifiex_11n_dispatch_pkt(priv, rx_tmp_ptr);
        }
 
-       spin_lock_irqsave(&priv->rx_pkt_lock, flags);
+       spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags);
        /*
         * We don't have a circular buffer, hence use rotation to simulate
         * circular buffer
@@ -140,7 +140,7 @@ mwifiex_11n_dispatch_pkt_until_start_win(struct mwifiex_private *priv,
        }
 
        tbl->start_win = start_win;
-       spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
+       spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags);
 }
 
 /*
@@ -160,18 +160,19 @@ mwifiex_11n_scan_and_dispatch(struct mwifiex_private *priv,
        unsigned long flags;
 
        for (i = 0; i < tbl->win_size; ++i) {
-               spin_lock_irqsave(&priv->rx_pkt_lock, flags);
+               spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags);
                if (!tbl->rx_reorder_ptr[i]) {
-                       spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
+                       spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock,
+                                              flags);
                        break;
                }
                rx_tmp_ptr = tbl->rx_reorder_ptr[i];
                tbl->rx_reorder_ptr[i] = NULL;
-               spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
+               spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags);
                mwifiex_11n_dispatch_pkt(priv, rx_tmp_ptr);
        }
 
-       spin_lock_irqsave(&priv->rx_pkt_lock, flags);
+       spin_lock_irqsave(&priv->rx_reorder_tbl_lock, flags);
        /*
         * We don't have a circular buffer, hence use rotation to simulate
         * circular buffer
@@ -184,7 +185,7 @@ mwifiex_11n_scan_and_dispatch(struct mwifiex_private *priv,
                }
        }
        tbl->start_win = (tbl->start_win + i) & (MAX_TID_VALUE - 1);
-       spin_unlock_irqrestore(&priv->rx_pkt_lock, flags);
+       spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags);
 }
 
 /*
index d239e92..dab02d7 100644 (file)
@@ -439,7 +439,6 @@ int mwifiex_init_lock_list(struct mwifiex_adapter *adapter)
        for (i = 0; i < adapter->priv_num; i++) {
                if (adapter->priv[i]) {
                        priv = adapter->priv[i];
-                       spin_lock_init(&priv->rx_pkt_lock);
                        spin_lock_init(&priv->wmm.ra_list_spinlock);
                        spin_lock_init(&priv->curr_bcn_buf_lock);
                        spin_lock_init(&priv->sta_list_spinlock);
index 69ac0a2..d2b54be 100644 (file)
@@ -616,9 +616,6 @@ struct mwifiex_private {
        struct list_head rx_reorder_tbl_ptr;
        /* spin lock for rx_reorder_tbl_ptr queue */
        spinlock_t rx_reorder_tbl_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];
        u32 assoc_rsp_size;