]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
iwlwifi: pcie: lock txq a bit later in reclaim code
authorSara Sharon <sara.sharon@intel.com>
Mon, 27 Aug 2018 11:07:20 +0000 (14:07 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 20 Dec 2018 07:08:25 +0000 (09:08 +0200)
In reclaim code, we don't need to take the queue lock for
waking the queue. The code section is executed only when
the tx path is stopped, and since the reclaim path is not
executed in parallel to itself, no one can update the queue
pointers, and accessing them is safe without a lock.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/intel/iwlwifi/pcie/tx.c

index 3d53842ee60e0a408cea69f759bab5181c70ff41..ee990a7a5411dee4cd4e2f204362041b7528a211 100644 (file)
@@ -1160,10 +1160,11 @@ void iwl_trans_pcie_reclaim(struct iwl_trans *trans, int txq_id, int ssn,
                         */
                        iwl_trans_tx(trans, skb, dev_cmd_ptr, txq_id);
                }
-               spin_lock_bh(&txq->lock);
 
                if (iwl_queue_space(trans, txq) > txq->low_mark)
                        iwl_wake_queue(trans, txq);
+
+               spin_lock_bh(&txq->lock);
        }
 
        if (txq->read_ptr == txq->write_ptr) {