]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cfg80211: force last_request to be set for OLD_REG if regdom is EU
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Sat, 28 Mar 2009 01:45:10 +0000 (01:45 +0000)
committerChris Wright <chrisw@sous-sol.org>
Thu, 2 Apr 2009 20:55:17 +0000 (13:55 -0700)
upstream commit: 2e097dc65673ed421bbc2e49f52c125aa43a8ee6

Although EU is a bogus alpha2 we need to process the send request
as our code depends on last_request being set.

Cc: stable@kernel.org
Reported-by: Quentin Armitage <Quentin@armitage.org.uk>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
[chrisw: backport to 2.6.29]
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Port-acked-by: Luis R. Rodriguez <lrodriguez@atheros.com>
net/wireless/reg.c

index bd0a16c3de5e9f37d37f3f19e1b9e8a8ccd8cde9..0a08e74c98b231c011ba3eee7c45844b422b74c3 100644 (file)
@@ -1469,13 +1469,20 @@ int regulatory_init(void)
 
        printk(KERN_INFO "cfg80211: Using static regulatory domain info\n");
        print_regdomain_info(cfg80211_regdomain);
-       /* The old code still requests for a new regdomain and if
+       /*
+        * The old code still requests for a new regdomain and if
         * you have CRDA you get it updated, otherwise you get
         * stuck with the static values. We ignore "EU" code as
-        * that is not a valid ISO / IEC 3166 alpha2 */
-       if (ieee80211_regdom[0] != 'E' || ieee80211_regdom[1] != 'U')
-               err = __regulatory_hint(NULL, REGDOM_SET_BY_CORE,
-                                       ieee80211_regdom, 0, ENVIRON_ANY);
+        * that is not a valid ISO / IEC 3166 alpha2
+        * stuck with the static values. Since "EU" is not a valid
+        * ISO / IEC 3166 alpha2 code we can't expect userpace to
+        * give us a regulatory domain for it. We need last_request
+        * iniitalized though so lets just send a request which we
+        * know will be ignored... this crap will be removed once
+        * OLD_REG dies.
+        */
+       err = __regulatory_hint(NULL, REGDOM_SET_BY_CORE,
+                               ieee80211_regdom, 0, ENVIRON_ANY);
 #else
        cfg80211_regdomain = cfg80211_world_regdom;