iwlwifi: mvm: Don't warn on command failure during restart
authorIlan Peer <ilan.peer@intel.com>
Thu, 10 Jan 2019 16:07:23 +0000 (18:07 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 14 Feb 2019 09:29:51 +0000 (11:29 +0200)
When HW restart is requested but not started yet, commands would not
be sent to the FW, and some function calls return an error. Such cases
can trigger unneeded warning messages, e.g., in iwl_mvm_mac_sta_state()
and iwl_mvm_bss_info_changed_station().

Handle a couple of these cases by also checking in the WARN_ON()
condition that HW restart is not requested.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index c025597667129b9a009e059e12a8cc4b4e15a32f..313de9de02fc0b6817bc59e62bbd48fbcd1c7d5b 100644 (file)
@@ -2364,7 +2364,10 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
                         * If update fails - SF might be running in associated
                         * mode while disassociated - which is forbidden.
                         */
-                       WARN_ONCE(iwl_mvm_sf_update(mvm, vif, false),
+                       ret = iwl_mvm_sf_update(mvm, vif, false);
+                       WARN_ONCE(ret &&
+                                 !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
+                                           &mvm->status),
                                  "Failed to update SF upon disassociation\n");
 
                        /*
@@ -3169,7 +3172,10 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
        } else if (old_state == IEEE80211_STA_AUTHORIZED &&
                   new_state == IEEE80211_STA_ASSOC) {
                /* disable beacon filtering */
-               WARN_ON(iwl_mvm_disable_beacon_filter(mvm, vif, 0));
+               ret = iwl_mvm_disable_beacon_filter(mvm, vif, 0);
+               WARN_ON(ret &&
+                       !test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED,
+                                 &mvm->status));
                ret = 0;
        } else if (old_state == IEEE80211_STA_ASSOC &&
                   new_state == IEEE80211_STA_AUTH) {