diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-10-15 11:57:36 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-10-16 10:41:40 -0400 |
commit | 4e760f1ab267edcd6e4b232ff732fc9cdc659ebb (patch) | |
tree | 92b3247dd43fc9490a3a099782e5da92c0964ba4 /drivers/net/wireless/iwlwifi | |
parent | 378b8f7f3b767974c726dee92a9bb3d15b7a66b3 (diff) |
iwlwifi: don't WARN when a non empty queue is disabled
This can happen when we shut down suddenly an interface.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/tx.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c index 39ead8cc7e73..db3efbb84d92 100644 --- a/drivers/net/wireless/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/iwlwifi/pcie/tx.c | |||
@@ -480,11 +480,9 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, int fifo, | |||
480 | void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id) | 480 | void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id) |
481 | { | 481 | { |
482 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); | 482 | struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); |
483 | u16 rd_ptr, wr_ptr; | ||
484 | u32 stts_addr = trans_pcie->scd_base_addr + | 483 | u32 stts_addr = trans_pcie->scd_base_addr + |
485 | SCD_TX_STTS_QUEUE_OFFSET(txq_id); | 484 | SCD_TX_STTS_QUEUE_OFFSET(txq_id); |
486 | static const u32 zero_val[4] = {}; | 485 | static const u32 zero_val[4] = {}; |
487 | int n_bd = trans_pcie->txq[txq_id].q.n_bd; | ||
488 | 486 | ||
489 | if (!test_and_clear_bit(txq_id, trans_pcie->queue_used)) { | 487 | if (!test_and_clear_bit(txq_id, trans_pcie->queue_used)) { |
490 | WARN_ONCE(1, "queue %d not used", txq_id); | 488 | WARN_ONCE(1, "queue %d not used", txq_id); |
@@ -493,12 +491,6 @@ void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id) | |||
493 | 491 | ||
494 | iwl_txq_set_inactive(trans, txq_id); | 492 | iwl_txq_set_inactive(trans, txq_id); |
495 | 493 | ||
496 | rd_ptr = iwl_read_prph(trans, SCD_QUEUE_RDPTR(txq_id)) & (n_bd - 1); | ||
497 | wr_ptr = iwl_read_prph(trans, SCD_QUEUE_WRPTR(txq_id)); | ||
498 | |||
499 | WARN_ONCE(rd_ptr != wr_ptr, "queue %d isn't empty: [%d,%d]", | ||
500 | txq_id, rd_ptr, wr_ptr); | ||
501 | |||
502 | _iwl_write_targ_mem_dwords(trans, stts_addr, | 494 | _iwl_write_targ_mem_dwords(trans, stts_addr, |
503 | zero_val, ARRAY_SIZE(zero_val)); | 495 | zero_val, ARRAY_SIZE(zero_val)); |
504 | 496 | ||