ath10k: cleanup ath10k_mac_register() error handling
The logic in the error-handling path of ath10k_mac_register() is divergent from the logic in ath10k_mac_unregister(). Update the ath10k_mac_register() error handling logic to align with the ath10k_mac_unregister() logic. Signed-off-by: Jeff Johnson <jjohnson@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
83cfce87d9
commit
0e339447cf
|
@ -7304,7 +7304,7 @@ int ath10k_mac_register(struct ath10k *ar)
|
|||
ath10k_reg_notifier);
|
||||
if (ret) {
|
||||
ath10k_err(ar, "failed to initialise regulatory: %i\n", ret);
|
||||
goto err_free;
|
||||
goto err_dfs_detector_exit;
|
||||
}
|
||||
|
||||
ar->hw->wiphy->cipher_suites = cipher_suites;
|
||||
|
@ -7313,7 +7313,7 @@ int ath10k_mac_register(struct ath10k *ar)
|
|||
ret = ieee80211_register_hw(ar->hw);
|
||||
if (ret) {
|
||||
ath10k_err(ar, "failed to register ieee80211: %d\n", ret);
|
||||
goto err_free;
|
||||
goto err_dfs_detector_exit;
|
||||
}
|
||||
|
||||
if (!ath_is_world_regd(&ar->ath_common.regulatory)) {
|
||||
|
@ -7327,10 +7327,16 @@ int ath10k_mac_register(struct ath10k *ar)
|
|||
|
||||
err_unregister:
|
||||
ieee80211_unregister_hw(ar->hw);
|
||||
|
||||
err_dfs_detector_exit:
|
||||
if (config_enabled(CONFIG_ATH10K_DFS_CERTIFIED) && ar->dfs_detector)
|
||||
ar->dfs_detector->exit(ar->dfs_detector);
|
||||
|
||||
err_free:
|
||||
kfree(ar->mac.sbands[IEEE80211_BAND_2GHZ].channels);
|
||||
kfree(ar->mac.sbands[IEEE80211_BAND_5GHZ].channels);
|
||||
|
||||
SET_IEEE80211_DEV(ar->hw, NULL);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue