diff options
author | Luca Coelho <luciano.coelho@intel.com> | 2022-02-05 11:21:33 +0200 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2022-02-18 10:40:54 +0200 |
commit | 3538c809d6126fbf9e126d37af67003205eee1bd (patch) | |
tree | d7b5455fc7ee81f374da1266ea833f4888c1e746 /drivers/net/wireless/intel/iwlwifi/mvm/sta.c | |
parent | 91ca9c3ade1be665f5ce88594ee687c56b0357d5 (diff) | |
download | linux-3538c809d6126fbf9e126d37af67003205eee1bd.tar.gz linux-3538c809d6126fbf9e126d37af67003205eee1bd.tar.bz2 linux-3538c809d6126fbf9e126d37af67003205eee1bd.zip |
iwlwifi: mvm: don't send BAID removal to the FW during hw_restart
With the new ML API, we can't send the BAID removal command to
firmware during hw_restart because it will cause an assertion failure
0x350D because the BAID doesn't exist at that point.
So avoid sending the command if we are performing a hw_restart.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20220205112029.7b363457e1aa.Ie4634222e6a33451b88e1042c83e9ea28775bd9f@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/sta.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c index 29470d00480b..e007bd78a34d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2012-2015, 2018-2021 Intel Corporation + * Copyright (C) 2012-2015, 2018-2022 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2016-2017 Intel Deutschland GmbH */ @@ -2714,8 +2714,11 @@ int iwl_mvm_sta_rx_agg(struct iwl_mvm *mvm, struct ieee80211_sta *sta, baid = -1; } - baid = iwl_mvm_fw_baid_op(mvm, mvm_sta, start, tid, ssn, buf_size, - baid); + /* Don't send command to remove (start=0) BAID during restart */ + if (start || !test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) + baid = iwl_mvm_fw_baid_op(mvm, mvm_sta, start, tid, ssn, buf_size, + baid); + if (baid < 0) { ret = baid; goto out_free; |