diff options
Diffstat (limited to 'net/wireless/reg.c')
-rw-r--r-- | net/wireless/reg.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index f180db0de66c..d14bbf960c18 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/slab.h> | 36 | #include <linux/slab.h> |
37 | #include <linux/list.h> | 37 | #include <linux/list.h> |
38 | #include <linux/random.h> | 38 | #include <linux/random.h> |
39 | #include <linux/ctype.h> | ||
39 | #include <linux/nl80211.h> | 40 | #include <linux/nl80211.h> |
40 | #include <linux/platform_device.h> | 41 | #include <linux/platform_device.h> |
41 | #include <net/cfg80211.h> | 42 | #include <net/cfg80211.h> |
@@ -73,7 +74,11 @@ const struct ieee80211_regdomain *cfg80211_regdomain; | |||
73 | * - last_request | 74 | * - last_request |
74 | */ | 75 | */ |
75 | static DEFINE_MUTEX(reg_mutex); | 76 | static DEFINE_MUTEX(reg_mutex); |
76 | #define assert_reg_lock() WARN_ON(!mutex_is_locked(®_mutex)) | 77 | |
78 | static inline void assert_reg_lock(void) | ||
79 | { | ||
80 | lockdep_assert_held(®_mutex); | ||
81 | } | ||
77 | 82 | ||
78 | /* Used to queue up regulatory hints */ | 83 | /* Used to queue up regulatory hints */ |
79 | static LIST_HEAD(reg_requests_list); | 84 | static LIST_HEAD(reg_requests_list); |
@@ -181,14 +186,6 @@ static bool is_alpha2_set(const char *alpha2) | |||
181 | return false; | 186 | return false; |
182 | } | 187 | } |
183 | 188 | ||
184 | static bool is_alpha_upper(char letter) | ||
185 | { | ||
186 | /* ASCII A - Z */ | ||
187 | if (letter >= 65 && letter <= 90) | ||
188 | return true; | ||
189 | return false; | ||
190 | } | ||
191 | |||
192 | static bool is_unknown_alpha2(const char *alpha2) | 189 | static bool is_unknown_alpha2(const char *alpha2) |
193 | { | 190 | { |
194 | if (!alpha2) | 191 | if (!alpha2) |
@@ -220,7 +217,7 @@ static bool is_an_alpha2(const char *alpha2) | |||
220 | { | 217 | { |
221 | if (!alpha2) | 218 | if (!alpha2) |
222 | return false; | 219 | return false; |
223 | if (is_alpha_upper(alpha2[0]) && is_alpha_upper(alpha2[1])) | 220 | if (isalpha(alpha2[0]) && isalpha(alpha2[1])) |
224 | return true; | 221 | return true; |
225 | return false; | 222 | return false; |
226 | } | 223 | } |
@@ -1399,6 +1396,11 @@ static DECLARE_WORK(reg_work, reg_todo); | |||
1399 | 1396 | ||
1400 | static void queue_regulatory_request(struct regulatory_request *request) | 1397 | static void queue_regulatory_request(struct regulatory_request *request) |
1401 | { | 1398 | { |
1399 | if (isalpha(request->alpha2[0])) | ||
1400 | request->alpha2[0] = toupper(request->alpha2[0]); | ||
1401 | if (isalpha(request->alpha2[1])) | ||
1402 | request->alpha2[1] = toupper(request->alpha2[1]); | ||
1403 | |||
1402 | spin_lock(®_requests_lock); | 1404 | spin_lock(®_requests_lock); |
1403 | list_add_tail(&request->list, ®_requests_list); | 1405 | list_add_tail(&request->list, ®_requests_list); |
1404 | spin_unlock(®_requests_lock); | 1406 | spin_unlock(®_requests_lock); |