Commit 0e339447 authored by Jeff Johnson's avatar Jeff Johnson Committed by Kalle Valo

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: default avatarJeff Johnson <jjohnson@qca.qualcomm.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 83cfce87
...@@ -7304,7 +7304,7 @@ int ath10k_mac_register(struct ath10k *ar) ...@@ -7304,7 +7304,7 @@ int ath10k_mac_register(struct ath10k *ar)
ath10k_reg_notifier); ath10k_reg_notifier);
if (ret) { if (ret) {
ath10k_err(ar, "failed to initialise regulatory: %i\n", 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; ar->hw->wiphy->cipher_suites = cipher_suites;
...@@ -7313,7 +7313,7 @@ int ath10k_mac_register(struct ath10k *ar) ...@@ -7313,7 +7313,7 @@ int ath10k_mac_register(struct ath10k *ar)
ret = ieee80211_register_hw(ar->hw); ret = ieee80211_register_hw(ar->hw);
if (ret) { if (ret) {
ath10k_err(ar, "failed to register ieee80211: %d\n", 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)) { if (!ath_is_world_regd(&ar->ath_common.regulatory)) {
...@@ -7327,10 +7327,16 @@ int ath10k_mac_register(struct ath10k *ar) ...@@ -7327,10 +7327,16 @@ int ath10k_mac_register(struct ath10k *ar)
err_unregister: err_unregister:
ieee80211_unregister_hw(ar->hw); 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: err_free:
kfree(ar->mac.sbands[IEEE80211_BAND_2GHZ].channels); kfree(ar->mac.sbands[IEEE80211_BAND_2GHZ].channels);
kfree(ar->mac.sbands[IEEE80211_BAND_5GHZ].channels); kfree(ar->mac.sbands[IEEE80211_BAND_5GHZ].channels);
SET_IEEE80211_DEV(ar->hw, NULL);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment