Commit beee2469 authored by Ilan Peer's avatar Ilan Peer Committed by Johannes Berg

cfg80211: Save the regulatory domain when setting custom regulatory

When custom regulatory was set, only the channels setting was updated, but
the regulatory domain was not saved. Fix it by saving it.
Signed-off-by: default avatarIlan Peer <ilan.peer@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20201129172929.290fa5c5568a.Ic5732aa64de6ee97ae3578bd5779fc723ba489d1@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c837cbad
...@@ -2547,6 +2547,7 @@ static void handle_band_custom(struct wiphy *wiphy, ...@@ -2547,6 +2547,7 @@ static void handle_band_custom(struct wiphy *wiphy,
void wiphy_apply_custom_regulatory(struct wiphy *wiphy, void wiphy_apply_custom_regulatory(struct wiphy *wiphy,
const struct ieee80211_regdomain *regd) const struct ieee80211_regdomain *regd)
{ {
const struct ieee80211_regdomain *new_regd, *tmp;
enum nl80211_band band; enum nl80211_band band;
unsigned int bands_set = 0; unsigned int bands_set = 0;
...@@ -2566,6 +2567,13 @@ void wiphy_apply_custom_regulatory(struct wiphy *wiphy, ...@@ -2566,6 +2567,13 @@ void wiphy_apply_custom_regulatory(struct wiphy *wiphy,
* on your device's supported bands. * on your device's supported bands.
*/ */
WARN_ON(!bands_set); WARN_ON(!bands_set);
new_regd = reg_copy_regd(regd);
if (IS_ERR(new_regd))
return;
tmp = get_wiphy_regdom(wiphy);
rcu_assign_pointer(wiphy->regd, new_regd);
rcu_free_regdom(tmp);
} }
EXPORT_SYMBOL(wiphy_apply_custom_regulatory); EXPORT_SYMBOL(wiphy_apply_custom_regulatory);
......
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