aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2009-03-20 23:53:06 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-03-27 20:13:07 -0400
commit6ee7d33056f6e6fc7437d980dcc741816deedd0f (patch)
tree80ae8f6277f508f48bea63898cebb7fdeaa0cfec
parentcc0b6fe88e99096868bdbacbf486c97299533b5a (diff)
cfg80211: make regdom module parameter available oustide of OLD_REG
It seems a few users are using this module parameter although its not recommended. People are finding it useful despite there being utilities for setting this in userspace. I'm not aware of any distribution using this though. Until userspace and distributions catch up with a default userspace automatic replacement (GeoClue integration would be nirvana) we copy the ieee80211_regdom module parameter from OLD_REG to the new reg code to help these users migrate. Users who are using the non-valid ISO / IEC 3166 alpha "EU" in their ieee80211_regdom module parameter and migrate to non-OLD_REG enabled system will world roam. This also schedules removal of this same ieee80211_regdom module parameter circa March 2010. Hope is by then nirvana is reached and users will abandoned the module parameter completely. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--Documentation/feature-removal-schedule.txt30
-rw-r--r--net/wireless/reg.c7
2 files changed, 32 insertions, 5 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index e47c0ff8ba7a..8365f52a3548 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -6,7 +6,31 @@ be removed from this file.
6 6
7--------------------------- 7---------------------------
8 8
9What: old static regulatory information and ieee80211_regdom module parameter 9What: The ieee80211_regdom module parameter
10When: March 2010
11
12Why: This was inherited by the CONFIG_WIRELESS_OLD_REGULATORY code,
13 and currently serves as an option for users to define an
14 ISO / IEC 3166 alpha2 code for the country they are currently
15 present in. Although there are userspace API replacements for this
16 through nl80211 distributions haven't yet caught up with implementing
17 decent alternatives through standard GUIs. Although available as an
18 option through iw or wpa_supplicant its just a matter of time before
19 distributions pick up good GUI options for this. The ideal solution
20 would actually consist of intelligent designs which would do this for
21 the user automatically even when travelling through different countries.
22 Until then we leave this module parameter as a compromise.
23
24 When userspace improves with reasonable widely-available alternatives for
25 this we will no longer need this module parameter. This entry hopes that
26 by the super-futuristically looking date of "March 2010" we will have
27 such replacements widely available.
28
29Who: Luis R. Rodriguez <lrodriguez@atheros.com>
30
31---------------------------
32
33What: old static regulatory information
10When: 2.6.29 34When: 2.6.29
11Why: The old regulatory infrastructure has been replaced with a new one 35Why: The old regulatory infrastructure has been replaced with a new one
12 which does not require statically defined regulatory domains. We do 36 which does not require statically defined regulatory domains. We do
@@ -17,9 +41,7 @@ Why: The old regulatory infrastructure has been replaced with a new one
17 * JP 41 * JP
18 * EU 42 * EU
19 and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was 43 and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was
20 set. We also kept around the ieee80211_regdom module parameter in case 44 set.
21 some applications were relying on it. Changing regulatory domains
22 can now be done instead by using nl80211, as is done with iw.
23Who: Luis R. Rodriguez <lrodriguez@atheros.com> 45Who: Luis R. Rodriguez <lrodriguez@atheros.com>
24 46
25--------------------------- 47---------------------------
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 9afc9168748b..ac048a158d85 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -122,9 +122,14 @@ static const struct ieee80211_regdomain *cfg80211_world_regdom =
122 122
123#ifdef CONFIG_WIRELESS_OLD_REGULATORY 123#ifdef CONFIG_WIRELESS_OLD_REGULATORY
124static char *ieee80211_regdom = "US"; 124static char *ieee80211_regdom = "US";
125#else
126static char *ieee80211_regdom = "00";
127#endif
128
125module_param(ieee80211_regdom, charp, 0444); 129module_param(ieee80211_regdom, charp, 0444);
126MODULE_PARM_DESC(ieee80211_regdom, "IEEE 802.11 regulatory domain code"); 130MODULE_PARM_DESC(ieee80211_regdom, "IEEE 802.11 regulatory domain code");
127 131
132#ifdef CONFIG_WIRELESS_OLD_REGULATORY
128/* 133/*
129 * We assume 40 MHz bandwidth for the old regulatory work. 134 * We assume 40 MHz bandwidth for the old regulatory work.
130 * We make emphasis we are using the exact same frequencies 135 * We make emphasis we are using the exact same frequencies
@@ -2152,7 +2157,7 @@ int regulatory_init(void)
2152#else 2157#else
2153 cfg80211_regdomain = cfg80211_world_regdom; 2158 cfg80211_regdomain = cfg80211_world_regdom;
2154 2159
2155 err = regulatory_hint_core("00"); 2160 err = regulatory_hint_core(ieee80211_regdom);
2156#endif 2161#endif
2157 if (err) { 2162 if (err) {
2158 if (err == -ENOMEM) 2163 if (err == -ENOMEM)