28 lines
1.2 KiB
Diff
28 lines
1.2 KiB
Diff
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
|
|
--- a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
|
|
+++ b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
|
|
@@ -516,6 +516,10 @@ iwl_mld_mac80211_tx(struct ieee80211_hw *hw,
|
|
u32 link_id = u32_get_bits(info->control.flags,
|
|
IEEE80211_TX_CTRL_MLO_LINK);
|
|
|
|
+ if (unlikely(test_bit(STATUS_FW_ERROR, &mld->trans->status))) {
|
|
+ ieee80211_free_txskb(hw, skb);
|
|
+ return;
|
|
+ }
|
|
/* In AP mode, mgmt frames are sent on the bcast station,
|
|
* so the FW can't translate the MLD addr to the link addr. Do it here
|
|
*/
|
|
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/tx.c b/drivers/net/wireless/intel/iwlwifi/mld/tx.c
|
|
--- a/drivers/net/wireless/intel/iwlwifi/mld/tx.c
|
|
+++ b/drivers/net/wireless/intel/iwlwifi/mld/tx.c
|
|
@@ -987,6 +987,9 @@ void iwl_mld_tx_from_txq(struct iwl_mld *mld, struct ieee80211_txq *txq)
|
|
struct sk_buff *skb = NULL;
|
|
u8 zero_addr[ETH_ALEN] = {};
|
|
|
|
+ if (unlikely(test_bit(STATUS_FW_ERROR, &mld->trans->status)))
|
|
+ return;
|
|
+
|
|
/*
|
|
* Don't transmit during firmware restart. The firmware is dead,
|
|
* so iwl_trans_tx() would return -EIO for each frame. Avoid the
|