wireless: Protect regdomain change by mutex
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
b423db5b35
commit
cee0bec58a
@@ -1830,6 +1830,7 @@ static void restore_custom_reg_settings(struct wiphy *wiphy)
|
|||||||
static void restore_regulatory_settings(bool reset_user)
|
static void restore_regulatory_settings(bool reset_user)
|
||||||
{
|
{
|
||||||
char alpha2[2];
|
char alpha2[2];
|
||||||
|
char world_alpha2[2];
|
||||||
struct reg_beacon *reg_beacon, *btmp;
|
struct reg_beacon *reg_beacon, *btmp;
|
||||||
struct regulatory_request *reg_request, *tmp;
|
struct regulatory_request *reg_request, *tmp;
|
||||||
LIST_HEAD(tmp_reg_req_list);
|
LIST_HEAD(tmp_reg_req_list);
|
||||||
@@ -1881,6 +1882,8 @@ static void restore_regulatory_settings(bool reset_user)
|
|||||||
|
|
||||||
/* First restore to the basic regulatory settings */
|
/* First restore to the basic regulatory settings */
|
||||||
cfg80211_regdomain = cfg80211_world_regdom;
|
cfg80211_regdomain = cfg80211_world_regdom;
|
||||||
|
world_alpha2[0] = cfg80211_regdomain->alpha2[0];
|
||||||
|
world_alpha2[1] = cfg80211_regdomain->alpha2[1];
|
||||||
|
|
||||||
list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
|
list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
|
||||||
if (rdev->wiphy.flags & WIPHY_FLAG_CUSTOM_REGULATORY)
|
if (rdev->wiphy.flags & WIPHY_FLAG_CUSTOM_REGULATORY)
|
||||||
@@ -1890,7 +1893,7 @@ static void restore_regulatory_settings(bool reset_user)
|
|||||||
mutex_unlock(®_mutex);
|
mutex_unlock(®_mutex);
|
||||||
mutex_unlock(&cfg80211_mutex);
|
mutex_unlock(&cfg80211_mutex);
|
||||||
|
|
||||||
regulatory_hint_core(cfg80211_regdomain->alpha2);
|
regulatory_hint_core(world_alpha2);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This restores the ieee80211_regdom module parameter
|
* This restores the ieee80211_regdom module parameter
|
||||||
|
Reference in New Issue
Block a user