Browse Source

iwlwifi: pcie: fix unused txq NULL pointer dereference

Before TVQM, all TX queues were allocated straight at init.
With TVQM, queues are allocated on demand and hence we need
to check if a queue exists before dereferencing it.

Fixes: 66128fa08806 ("iwlwifi: move to TVQM mode")
Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Mordechai Goodstein 8 năm trước cách đây
mục cha
commit
f6eac740a9
1 tập tin đã thay đổi với 3 bổ sung0 xóa
  1. 3 0
      drivers/net/wireless/intel/iwlwifi/pcie/tx.c

+ 3 - 0
drivers/net/wireless/intel/iwlwifi/pcie/tx.c

@@ -298,6 +298,9 @@ void iwl_pcie_txq_check_wrptrs(struct iwl_trans *trans)
 	for (i = 0; i < trans->cfg->base_params->num_of_queues; i++) {
 		struct iwl_txq *txq = trans_pcie->txq[i];
 
+		if (!test_bit(i, trans_pcie->queue_used))
+			continue;
+
 		spin_lock_bh(&txq->lock);
 		if (txq->need_update) {
 			iwl_pcie_txq_inc_wr_ptr(trans, txq);