iwlwifi: mvm: fix unregistration of thermal in some error flows
authorChaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Thu, 3 Mar 2016 11:31:39 +0000 (13:31 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 7 Mar 2016 11:34:15 +0000 (13:34 +0200)
The call to iwl_mvm_thermal_initialize() was too early in the
function.
Unregister will be performed when goto out_unregister is called,
but as the code was - out_free may be called and leave without
unregistering from thermal.

Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/ops.c

index 699a808..4322e8e 100644 (file)
@@ -611,9 +611,6 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
        IWL_INFO(mvm, "Detected %s, REV=0x%X\n",
                 mvm->cfg->name, mvm->trans->hw_rev);
 
-       min_backoff = calc_min_backoff(trans, cfg);
-       iwl_mvm_thermal_initialize(mvm, min_backoff);
-
        if (iwlwifi_mod_params.nvm_file)
                mvm->nvm_file_name = iwlwifi_mod_params.nvm_file;
        else
@@ -666,6 +663,9 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
        if (err)
                goto out_free;
 
+       min_backoff = calc_min_backoff(trans, cfg);
+       iwl_mvm_thermal_initialize(mvm, min_backoff);
+
        err = iwl_mvm_dbgfs_register(mvm, dbgfs_dir);
        if (err)
                goto out_unregister;