2012-01-03 19:26:53

by Dmitry Shmidt

[permalink] [raw]
Subject: [PATCH] wireless: Protect regdomain change by mutex

Signed-off-by: Dmitry Shmidt <[email protected]>
---
net/wireless/reg.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 379574c..7b0add2 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -1759,6 +1759,7 @@ static void restore_alpha2(char *alpha2, bool reset_user)
static void restore_regulatory_settings(bool reset_user)
{
char alpha2[2];
+ char world_alpha2[2];
struct reg_beacon *reg_beacon, *btmp;
struct regulatory_request *reg_request, *tmp;
LIST_HEAD(tmp_reg_req_list);
@@ -1809,11 +1810,13 @@ static void restore_regulatory_settings(bool reset_user)

/* First restore to the basic regulatory settings */
cfg80211_regdomain = cfg80211_world_regdom;
+ world_alpha2[0] = cfg80211_regdomain->alpha2[0];
+ world_alpha2[1] = cfg80211_regdomain->alpha2[1];

mutex_unlock(&reg_mutex);
mutex_unlock(&cfg80211_mutex);

- regulatory_hint_core(cfg80211_regdomain->alpha2);
+ regulatory_hint_core(world_alpha2);

/*
* This restores the ieee80211_regdom module parameter
--
1.7.3.1