iwlwifi: mvm: fix error path in iwl_mvm_mac_setup_register()
authorJohannes Berg <johannes.berg@intel.com>
Thu, 24 Jan 2019 12:26:28 +0000 (13:26 +0100)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 20 Feb 2019 18:47:55 +0000 (20:47 +0200)
The IWL_MVM_INIT_STATUS_REG_HW_INIT_COMPLETE bit shouldn't be set,
and realistically we should complete all setup before we call the
ieee80211_register_hw() function. Fix this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index a3bbf2c..a585ee5 100644 (file)
@@ -796,16 +796,19 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm)
                        hw->netdev_features |= IWL_TX_CSUM_NETIF_FLAGS;
        }
 
-       ret = ieee80211_register_hw(mvm->hw);
-       if (ret)
-               iwl_mvm_leds_exit(mvm);
-       mvm->init_status |= IWL_MVM_INIT_STATUS_REG_HW_INIT_COMPLETE;
-
        if (mvm->cfg->vht_mu_mimo_supported)
                wiphy_ext_feature_set(hw->wiphy,
                                      NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER);
 
-       return ret;
+       ret = ieee80211_register_hw(mvm->hw);
+       if (ret) {
+               iwl_mvm_leds_exit(mvm);
+               return ret;
+       }
+
+       mvm->init_status |= IWL_MVM_INIT_STATUS_REG_HW_INIT_COMPLETE;
+
+       return 0;
 }
 
 static bool iwl_mvm_defer_tx(struct iwl_mvm *mvm,