diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-09-15 05:10:52 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-09-24 16:17:59 -0400 |
commit | a3d2eaf0dcad6dfdf44f3093aef688dfca714b6c (patch) | |
tree | a8e004bc52b6344451007beb1bf9822aed62004a /net | |
parent | 734366deaee05b1a5842d977960b4cc574d7551d (diff) |
cfg80211: fix regulatory code const
A few pointers and structures in the regulatory code are const,
but because it wasn't done properly a whole bunch of bogus
casts were needed to compile without warning. Mark everything
const properly to avoid that kind of junk code.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/wireless/reg.c | 58 | ||||
-rw-r--r-- | net/wireless/reg.h | 6 |
2 files changed, 31 insertions, 33 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 5fbeab50996f..7aba46efc7dd 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -68,7 +68,7 @@ static struct list_head regulatory_requests; | |||
68 | /* Central wireless core regulatory domains, we only need two, | 68 | /* Central wireless core regulatory domains, we only need two, |
69 | * the current one and a world regulatory domain in case we have no | 69 | * the current one and a world regulatory domain in case we have no |
70 | * information to give us an alpha2 */ | 70 | * information to give us an alpha2 */ |
71 | static struct ieee80211_regdomain *cfg80211_regdomain; | 71 | static const struct ieee80211_regdomain *cfg80211_regdomain; |
72 | 72 | ||
73 | /* We keep a static world regulatory domain in case of the absence of CRDA */ | 73 | /* We keep a static world regulatory domain in case of the absence of CRDA */ |
74 | static const struct ieee80211_regdomain world_regdom = { | 74 | static const struct ieee80211_regdomain world_regdom = { |
@@ -81,8 +81,8 @@ static const struct ieee80211_regdomain world_regdom = { | |||
81 | } | 81 | } |
82 | }; | 82 | }; |
83 | 83 | ||
84 | static struct ieee80211_regdomain *cfg80211_world_regdom = | 84 | static const struct ieee80211_regdomain *cfg80211_world_regdom = |
85 | (struct ieee80211_regdomain *) &world_regdom; | 85 | &world_regdom; |
86 | 86 | ||
87 | #ifdef CONFIG_WIRELESS_OLD_REGULATORY | 87 | #ifdef CONFIG_WIRELESS_OLD_REGULATORY |
88 | static char *ieee80211_regdom = "US"; | 88 | static char *ieee80211_regdom = "US"; |
@@ -168,7 +168,7 @@ static const struct ieee80211_regdomain *static_regdom(char *alpha2) | |||
168 | return &us_regdom; | 168 | return &us_regdom; |
169 | } | 169 | } |
170 | 170 | ||
171 | static bool is_old_static_regdom(struct ieee80211_regdomain *rd) | 171 | static bool is_old_static_regdom(const struct ieee80211_regdomain *rd) |
172 | { | 172 | { |
173 | if (rd == &us_regdom || rd == &jp_regdom || rd == &eu_regdom) | 173 | if (rd == &us_regdom || rd == &jp_regdom || rd == &eu_regdom) |
174 | return true; | 174 | return true; |
@@ -201,13 +201,13 @@ static void reset_regdomains(void) | |||
201 | } else if (cfg80211_regdomain && cfg80211_regdomain != &world_regdom) | 201 | } else if (cfg80211_regdomain && cfg80211_regdomain != &world_regdom) |
202 | kfree(cfg80211_regdomain); | 202 | kfree(cfg80211_regdomain); |
203 | 203 | ||
204 | cfg80211_world_regdom = (struct ieee80211_regdomain *) &world_regdom; | 204 | cfg80211_world_regdom = &world_regdom; |
205 | cfg80211_regdomain = NULL; | 205 | cfg80211_regdomain = NULL; |
206 | } | 206 | } |
207 | 207 | ||
208 | /* Dynamic world regulatory domain requested by the wireless | 208 | /* Dynamic world regulatory domain requested by the wireless |
209 | * core upon initialization */ | 209 | * core upon initialization */ |
210 | static void update_world_regdomain(struct ieee80211_regdomain *rd) | 210 | static void update_world_regdomain(const struct ieee80211_regdomain *rd) |
211 | { | 211 | { |
212 | BUG_ON(list_empty(®ulatory_requests)); | 212 | BUG_ON(list_empty(®ulatory_requests)); |
213 | 213 | ||
@@ -218,7 +218,7 @@ static void update_world_regdomain(struct ieee80211_regdomain *rd) | |||
218 | } | 218 | } |
219 | #endif | 219 | #endif |
220 | 220 | ||
221 | bool is_world_regdom(char *alpha2) | 221 | bool is_world_regdom(const char *alpha2) |
222 | { | 222 | { |
223 | if (!alpha2) | 223 | if (!alpha2) |
224 | return false; | 224 | return false; |
@@ -227,7 +227,7 @@ bool is_world_regdom(char *alpha2) | |||
227 | return false; | 227 | return false; |
228 | } | 228 | } |
229 | 229 | ||
230 | static bool is_alpha2_set(char *alpha2) | 230 | static bool is_alpha2_set(const char *alpha2) |
231 | { | 231 | { |
232 | if (!alpha2) | 232 | if (!alpha2) |
233 | return false; | 233 | return false; |
@@ -244,7 +244,7 @@ static bool is_alpha_upper(char letter) | |||
244 | return false; | 244 | return false; |
245 | } | 245 | } |
246 | 246 | ||
247 | static bool is_unknown_alpha2(char *alpha2) | 247 | static bool is_unknown_alpha2(const char *alpha2) |
248 | { | 248 | { |
249 | if (!alpha2) | 249 | if (!alpha2) |
250 | return false; | 250 | return false; |
@@ -255,7 +255,7 @@ static bool is_unknown_alpha2(char *alpha2) | |||
255 | return false; | 255 | return false; |
256 | } | 256 | } |
257 | 257 | ||
258 | static bool is_an_alpha2(char *alpha2) | 258 | static bool is_an_alpha2(const char *alpha2) |
259 | { | 259 | { |
260 | if (!alpha2) | 260 | if (!alpha2) |
261 | return false; | 261 | return false; |
@@ -264,7 +264,7 @@ static bool is_an_alpha2(char *alpha2) | |||
264 | return false; | 264 | return false; |
265 | } | 265 | } |
266 | 266 | ||
267 | static bool alpha2_equal(char *alpha2_x, char *alpha2_y) | 267 | static bool alpha2_equal(const char *alpha2_x, const char *alpha2_y) |
268 | { | 268 | { |
269 | if (!alpha2_x || !alpha2_y) | 269 | if (!alpha2_x || !alpha2_y) |
270 | return false; | 270 | return false; |
@@ -274,7 +274,7 @@ static bool alpha2_equal(char *alpha2_x, char *alpha2_y) | |||
274 | return false; | 274 | return false; |
275 | } | 275 | } |
276 | 276 | ||
277 | static bool regdom_changed(char *alpha2) | 277 | static bool regdom_changed(const char *alpha2) |
278 | { | 278 | { |
279 | if (!cfg80211_regdomain) | 279 | if (!cfg80211_regdomain) |
280 | return true; | 280 | return true; |
@@ -405,7 +405,7 @@ static int ignore_request(struct wiphy *wiphy, enum reg_set_by set_by, | |||
405 | } | 405 | } |
406 | } | 406 | } |
407 | 407 | ||
408 | static bool __reg_is_valid_request(char *alpha2, | 408 | static bool __reg_is_valid_request(const char *alpha2, |
409 | struct regulatory_request **request) | 409 | struct regulatory_request **request) |
410 | { | 410 | { |
411 | struct regulatory_request *req; | 411 | struct regulatory_request *req; |
@@ -421,16 +421,16 @@ static bool __reg_is_valid_request(char *alpha2, | |||
421 | } | 421 | } |
422 | 422 | ||
423 | /* Used by nl80211 before kmalloc'ing our regulatory domain */ | 423 | /* Used by nl80211 before kmalloc'ing our regulatory domain */ |
424 | bool reg_is_valid_request(char *alpha2) | 424 | bool reg_is_valid_request(const char *alpha2) |
425 | { | 425 | { |
426 | struct regulatory_request *request = NULL; | 426 | struct regulatory_request *request = NULL; |
427 | return __reg_is_valid_request(alpha2, &request); | 427 | return __reg_is_valid_request(alpha2, &request); |
428 | } | 428 | } |
429 | 429 | ||
430 | /* Sanity check on a regulatory rule */ | 430 | /* Sanity check on a regulatory rule */ |
431 | static bool is_valid_reg_rule(struct ieee80211_reg_rule *rule) | 431 | static bool is_valid_reg_rule(const struct ieee80211_reg_rule *rule) |
432 | { | 432 | { |
433 | struct ieee80211_freq_range *freq_range = &rule->freq_range; | 433 | const struct ieee80211_freq_range *freq_range = &rule->freq_range; |
434 | u32 freq_diff; | 434 | u32 freq_diff; |
435 | 435 | ||
436 | if (freq_range->start_freq_khz == 0 || freq_range->end_freq_khz == 0) | 436 | if (freq_range->start_freq_khz == 0 || freq_range->end_freq_khz == 0) |
@@ -447,9 +447,9 @@ static bool is_valid_reg_rule(struct ieee80211_reg_rule *rule) | |||
447 | return true; | 447 | return true; |
448 | } | 448 | } |
449 | 449 | ||
450 | static bool is_valid_rd(struct ieee80211_regdomain *rd) | 450 | static bool is_valid_rd(const struct ieee80211_regdomain *rd) |
451 | { | 451 | { |
452 | struct ieee80211_reg_rule *reg_rule = NULL; | 452 | const struct ieee80211_reg_rule *reg_rule = NULL; |
453 | unsigned int i; | 453 | unsigned int i; |
454 | 454 | ||
455 | if (!rd->n_reg_rules) | 455 | if (!rd->n_reg_rules) |
@@ -661,12 +661,12 @@ unlock_and_exit: | |||
661 | EXPORT_SYMBOL(regulatory_hint); | 661 | EXPORT_SYMBOL(regulatory_hint); |
662 | 662 | ||
663 | 663 | ||
664 | static void print_rd_rules(struct ieee80211_regdomain *rd) | 664 | static void print_rd_rules(const struct ieee80211_regdomain *rd) |
665 | { | 665 | { |
666 | unsigned int i; | 666 | unsigned int i; |
667 | struct ieee80211_reg_rule *reg_rule = NULL; | 667 | const struct ieee80211_reg_rule *reg_rule = NULL; |
668 | struct ieee80211_freq_range *freq_range = NULL; | 668 | const struct ieee80211_freq_range *freq_range = NULL; |
669 | struct ieee80211_power_rule *power_rule = NULL; | 669 | const struct ieee80211_power_rule *power_rule = NULL; |
670 | 670 | ||
671 | printk(KERN_INFO "\t(start_freq - end_freq @ bandwidth), " | 671 | printk(KERN_INFO "\t(start_freq - end_freq @ bandwidth), " |
672 | "(max_antenna_gain, max_eirp)\n"); | 672 | "(max_antenna_gain, max_eirp)\n"); |
@@ -696,7 +696,7 @@ static void print_rd_rules(struct ieee80211_regdomain *rd) | |||
696 | } | 696 | } |
697 | } | 697 | } |
698 | 698 | ||
699 | static void print_regdomain(struct ieee80211_regdomain *rd) | 699 | static void print_regdomain(const struct ieee80211_regdomain *rd) |
700 | { | 700 | { |
701 | 701 | ||
702 | if (is_world_regdom(rd->alpha2)) | 702 | if (is_world_regdom(rd->alpha2)) |
@@ -715,14 +715,14 @@ static void print_regdomain(struct ieee80211_regdomain *rd) | |||
715 | print_rd_rules(rd); | 715 | print_rd_rules(rd); |
716 | } | 716 | } |
717 | 717 | ||
718 | void print_regdomain_info(struct ieee80211_regdomain *rd) | 718 | void print_regdomain_info(const struct ieee80211_regdomain *rd) |
719 | { | 719 | { |
720 | printk(KERN_INFO "cfg80211: Regulatory domain: %c%c\n", | 720 | printk(KERN_INFO "cfg80211: Regulatory domain: %c%c\n", |
721 | rd->alpha2[0], rd->alpha2[1]); | 721 | rd->alpha2[0], rd->alpha2[1]); |
722 | print_rd_rules(rd); | 722 | print_rd_rules(rd); |
723 | } | 723 | } |
724 | 724 | ||
725 | static int __set_regdom(struct ieee80211_regdomain *rd) | 725 | static int __set_regdom(const struct ieee80211_regdomain *rd) |
726 | { | 726 | { |
727 | struct regulatory_request *request = NULL; | 727 | struct regulatory_request *request = NULL; |
728 | 728 | ||
@@ -804,7 +804,7 @@ static int __set_regdom(struct ieee80211_regdomain *rd) | |||
804 | * multiple drivers can be ironed out later. Caller must've already | 804 | * multiple drivers can be ironed out later. Caller must've already |
805 | * kmalloc'd the rd structure. If this calls fails you should kfree() | 805 | * kmalloc'd the rd structure. If this calls fails you should kfree() |
806 | * the passed rd. Caller must hold cfg80211_drv_mutex */ | 806 | * the passed rd. Caller must hold cfg80211_drv_mutex */ |
807 | int set_regdom(struct ieee80211_regdomain *rd) | 807 | int set_regdom(const struct ieee80211_regdomain *rd) |
808 | { | 808 | { |
809 | struct regulatory_request *this_request = NULL, *prev_request = NULL; | 809 | struct regulatory_request *this_request = NULL, *prev_request = NULL; |
810 | int r; | 810 | int r; |
@@ -857,8 +857,7 @@ int regulatory_init(void) | |||
857 | return PTR_ERR(reg_pdev); | 857 | return PTR_ERR(reg_pdev); |
858 | 858 | ||
859 | #ifdef CONFIG_WIRELESS_OLD_REGULATORY | 859 | #ifdef CONFIG_WIRELESS_OLD_REGULATORY |
860 | cfg80211_regdomain = | 860 | cfg80211_regdomain = static_regdom(ieee80211_regdom); |
861 | (struct ieee80211_regdomain *) static_regdom(ieee80211_regdom); | ||
862 | /* Used during reset_regdomains_static() */ | 861 | /* Used during reset_regdomains_static() */ |
863 | cfg80211_world_regdom = cfg80211_regdomain; | 862 | cfg80211_world_regdom = cfg80211_regdomain; |
864 | 863 | ||
@@ -872,8 +871,7 @@ int regulatory_init(void) | |||
872 | err = __regulatory_hint(NULL, REGDOM_SET_BY_CORE, | 871 | err = __regulatory_hint(NULL, REGDOM_SET_BY_CORE, |
873 | ieee80211_regdom, NULL); | 872 | ieee80211_regdom, NULL); |
874 | #else | 873 | #else |
875 | cfg80211_regdomain = | 874 | cfg80211_regdomain = cfg80211_world_regdom; |
876 | (struct ieee80211_regdomain *) cfg80211_world_regdom; | ||
877 | 875 | ||
878 | err = __regulatory_hint(NULL, REGDOM_SET_BY_CORE, "00", NULL); | 876 | err = __regulatory_hint(NULL, REGDOM_SET_BY_CORE, "00", NULL); |
879 | if (err) | 877 | if (err) |
diff --git a/net/wireless/reg.h b/net/wireless/reg.h index b169815987f4..a33362872f3c 100644 --- a/net/wireless/reg.h +++ b/net/wireless/reg.h | |||
@@ -2,12 +2,12 @@ | |||
2 | #define __NET_WIRELESS_REG_H | 2 | #define __NET_WIRELESS_REG_H |
3 | 3 | ||
4 | extern struct mutex cfg80211_reg_mutex; | 4 | extern struct mutex cfg80211_reg_mutex; |
5 | bool is_world_regdom(char *alpha2); | 5 | bool is_world_regdom(const char *alpha2); |
6 | bool reg_is_valid_request(char *alpha2); | 6 | bool reg_is_valid_request(const char *alpha2); |
7 | 7 | ||
8 | int regulatory_init(void); | 8 | int regulatory_init(void); |
9 | void regulatory_exit(void); | 9 | void regulatory_exit(void); |
10 | 10 | ||
11 | int set_regdom(struct ieee80211_regdomain *rd); | 11 | int set_regdom(const struct ieee80211_regdomain *rd); |
12 | 12 | ||
13 | #endif /* __NET_WIRELESS_REG_H */ | 13 | #endif /* __NET_WIRELESS_REG_H */ |