* If WoWLAN fw asserted, don't restart either, mac80211
         * can't recover this since we're already half suspended.
         */
-       if (test_and_set_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) {
+       if (!mvm->restart_fw && fw_error) {
+               schedule_work(&mvm->fw_error_dump_wk);
+       } else if (test_and_set_bit(IWL_MVM_STATUS_IN_HW_RESTART,
+                                   &mvm->status)) {
                struct iwl_mvm_reprobe *reprobe;
 
                IWL_ERR(mvm,
                reprobe->dev = mvm->trans->dev;
                INIT_WORK(&reprobe->work, iwl_mvm_reprobe_wk);
                schedule_work(&reprobe->work);
-       } else if (mvm->cur_ucode == IWL_UCODE_REGULAR &&
-                  (!fw_error || mvm->restart_fw)) {
+       } else if (mvm->cur_ucode == IWL_UCODE_REGULAR) {
                /* don't let the transport/FW power down */
                iwl_mvm_ref(mvm, IWL_MVM_REF_UCODE_DOWN);
 
                if (fw_error && mvm->restart_fw > 0)
                        mvm->restart_fw--;
                ieee80211_restart_hw(mvm->hw);
-       } else if (fw_error) {
-               schedule_work(&mvm->fw_error_dump_wk);
        }
 }