iwlwifi: pcie: remove the active field in struct iwl_txq
authorSara Sharon <sara.sharon@intel.com>
Thu, 29 Sep 2016 11:31:24 +0000 (14:31 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 11 Apr 2017 11:54:37 +0000 (14:54 +0300)
We already have queue_used in the transport - we can
use it instead.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/internal.h
drivers/net/wireless/intel/iwlwifi/pcie/tx.c

index 541b969..1ef9bb8 100644 (file)
@@ -237,7 +237,6 @@ struct iwl_pcie_first_tb_buf {
  * @stuck_timer: timer that fires if queue gets stuck
  * @trans_pcie: pointer back to transport (for timer)
  * @need_update: indicates need to update read/write index
- * @active: stores if queue is active
  * @ampdu: true if this queue is an ampdu queue for an specific RA/TID
  * @wd_timeout: queue watchdog timeout (jiffies) - per queue
  * @frozen: tx stuck queue timer is frozen
@@ -277,7 +276,6 @@ struct iwl_txq {
        struct iwl_trans_pcie *trans_pcie;
        bool need_update;
        bool frozen;
-       u8 active;
        bool ampdu;
        int block;
        unsigned long wd_timeout;
index a313c18..66bdd2d 100644 (file)
@@ -701,7 +701,6 @@ static void iwl_pcie_txq_unmap(struct iwl_trans *trans, int txq_id)
                        spin_unlock_irqrestore(&trans_pcie->reg_lock, flags);
                }
        }
-       txq->active = false;
 
        while (!skb_queue_empty(&txq->overflow_q)) {
                struct sk_buff *skb = __skb_dequeue(&txq->overflow_q);
@@ -932,6 +931,8 @@ void iwl_pcie_tx_free(struct iwl_trans *trans)
        int txq_id;
        struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
 
+       memset(trans_pcie->queue_used, 0, sizeof(trans_pcie->queue_used));
+
        /* Tx queues */
        if (trans_pcie->txq) {
                for (txq_id = 0;
@@ -1107,7 +1108,7 @@ void iwl_trans_pcie_reclaim(struct iwl_trans *trans, int txq_id, int ssn,
 
        spin_lock_bh(&txq->lock);
 
-       if (!txq->active) {
+       if (!test_bit(txq_id, trans_pcie->queue_used)) {
                IWL_DEBUG_TX_QUEUES(trans, "Q %d inactive - ignoring idx %d\n",
                                    txq_id, ssn);
                goto out;
@@ -1411,8 +1412,6 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, u16 ssn,
                                    "Activate queue %d WrPtr: %d\n",
                                    txq_id, ssn & 0xff);
        }
-
-       txq->active = true;
 }
 
 void iwl_trans_pcie_txq_set_shared_mode(struct iwl_trans *trans, u32 txq_id,