From: Johannes Berg <[email protected]>

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 <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
---
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c 
b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index a3bbf2ce571f..a585ee509987 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -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,
-- 
2.20.1

Reply via email to