Commit 924d1cd5 authored by Johannes Berg's avatar Johannes Berg

wifi: iwlwifi: trans: make bad state warnings

Kalle reported that this triggers very occasionally, but
we don't even know which place, except that it wasn't one
with a warning. Make all of them warnings since this is
really not meant to happen and indicates driver bugs.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240625194805.be7a3a95afae.Ie8606d36783818c043c971bf0bc6f4df6a6e8f5b@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 702935ae
...@@ -108,10 +108,9 @@ int iwl_trans_send_cmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd) ...@@ -108,10 +108,9 @@ int iwl_trans_send_cmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
if (unlikely(test_bit(STATUS_FW_ERROR, &trans->status))) if (unlikely(test_bit(STATUS_FW_ERROR, &trans->status)))
return -EIO; return -EIO;
if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return -EIO; return -EIO;
}
if (!(cmd->flags & CMD_ASYNC)) if (!(cmd->flags & CMD_ASYNC))
lock_map_acquire_read(&trans->sync_cmd_lockdep_map); lock_map_acquire_read(&trans->sync_cmd_lockdep_map);
...@@ -407,10 +406,9 @@ int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb, ...@@ -407,10 +406,9 @@ int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
if (unlikely(test_bit(STATUS_FW_ERROR, &trans->status))) if (unlikely(test_bit(STATUS_FW_ERROR, &trans->status)))
return -EIO; return -EIO;
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return -EIO; return -EIO;
}
if (trans->trans_cfg->gen2) if (trans->trans_cfg->gen2)
return iwl_txq_gen2_tx(trans, skb, dev_cmd, queue); return iwl_txq_gen2_tx(trans, skb, dev_cmd, queue);
...@@ -422,10 +420,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_tx); ...@@ -422,10 +420,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_tx);
void iwl_trans_reclaim(struct iwl_trans *trans, int queue, int ssn, void iwl_trans_reclaim(struct iwl_trans *trans, int queue, int ssn,
struct sk_buff_head *skbs, bool is_flush) struct sk_buff_head *skbs, bool is_flush)
{ {
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return; return;
}
iwl_pcie_reclaim(trans, queue, ssn, skbs, is_flush); iwl_pcie_reclaim(trans, queue, ssn, skbs, is_flush);
} }
...@@ -444,10 +441,9 @@ bool iwl_trans_txq_enable_cfg(struct iwl_trans *trans, int queue, u16 ssn, ...@@ -444,10 +441,9 @@ bool iwl_trans_txq_enable_cfg(struct iwl_trans *trans, int queue, u16 ssn,
{ {
might_sleep(); might_sleep();
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return false; return false;
}
return iwl_trans_pcie_txq_enable(trans, queue, ssn, return iwl_trans_pcie_txq_enable(trans, queue, ssn,
cfg, queue_wdg_timeout); cfg, queue_wdg_timeout);
...@@ -456,10 +452,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_txq_enable_cfg); ...@@ -456,10 +452,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_txq_enable_cfg);
int iwl_trans_wait_txq_empty(struct iwl_trans *trans, int queue) int iwl_trans_wait_txq_empty(struct iwl_trans *trans, int queue)
{ {
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return -EIO; return -EIO;
}
return iwl_trans_pcie_wait_txq_empty(trans, queue); return iwl_trans_pcie_wait_txq_empty(trans, queue);
} }
...@@ -467,11 +462,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_wait_txq_empty); ...@@ -467,11 +462,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_wait_txq_empty);
int iwl_trans_wait_tx_queues_empty(struct iwl_trans *trans, u32 txqs) int iwl_trans_wait_tx_queues_empty(struct iwl_trans *trans, u32 txqs)
{ {
/* No need to wait if the firmware is not alive */ if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
if (trans->state != IWL_TRANS_FW_ALIVE) { "bad state = %d\n", trans->state))
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state);
return -EIO; return -EIO;
}
return iwl_trans_pcie_wait_txqs_empty(trans, txqs); return iwl_trans_pcie_wait_txqs_empty(trans, txqs);
} }
...@@ -480,10 +473,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_wait_tx_queues_empty); ...@@ -480,10 +473,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_wait_tx_queues_empty);
void iwl_trans_freeze_txq_timer(struct iwl_trans *trans, void iwl_trans_freeze_txq_timer(struct iwl_trans *trans,
unsigned long txqs, bool freeze) unsigned long txqs, bool freeze)
{ {
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return; return;
}
iwl_pcie_freeze_txq_timer(trans, txqs, freeze); iwl_pcie_freeze_txq_timer(trans, txqs, freeze);
} }
...@@ -506,10 +498,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_debugfs_cleanup); ...@@ -506,10 +498,9 @@ IWL_EXPORT_SYMBOL(iwl_trans_debugfs_cleanup);
void iwl_trans_set_q_ptrs(struct iwl_trans *trans, int queue, int ptr) void iwl_trans_set_q_ptrs(struct iwl_trans *trans, int queue, int ptr)
{ {
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return; return;
}
iwl_pcie_set_q_ptrs(trans, queue, ptr); iwl_pcie_set_q_ptrs(trans, queue, ptr);
} }
...@@ -520,10 +511,9 @@ int iwl_trans_txq_alloc(struct iwl_trans *trans, u32 flags, u32 sta_mask, ...@@ -520,10 +511,9 @@ int iwl_trans_txq_alloc(struct iwl_trans *trans, u32 flags, u32 sta_mask,
{ {
might_sleep(); might_sleep();
if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { if (WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); "bad state = %d\n", trans->state))
return -EIO; return -EIO;
}
return iwl_txq_dyn_alloc(trans, flags, sta_mask, tid, return iwl_txq_dyn_alloc(trans, flags, sta_mask, tid,
size, wdg_timeout); size, wdg_timeout);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment