diff options
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/reg.c | 75 | ||||
-rw-r--r-- | net/wireless/wext-compat.c | 1 |
2 files changed, 26 insertions, 50 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index 65f86264f7bb..dc13c3ffeca6 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -142,62 +142,35 @@ static const struct ieee80211_regdomain us_regdom = { | |||
142 | .reg_rules = { | 142 | .reg_rules = { |
143 | /* IEEE 802.11b/g, channels 1..11 */ | 143 | /* IEEE 802.11b/g, channels 1..11 */ |
144 | REG_RULE(2412-10, 2462+10, 40, 6, 27, 0), | 144 | REG_RULE(2412-10, 2462+10, 40, 6, 27, 0), |
145 | /* IEEE 802.11a, channel 36 */ | 145 | /* IEEE 802.11a, channel 36..48 */ |
146 | REG_RULE(5180-10, 5180+10, 40, 6, 23, 0), | 146 | REG_RULE(5180-10, 5240+10, 40, 6, 17, 0), |
147 | /* IEEE 802.11a, channel 40 */ | ||
148 | REG_RULE(5200-10, 5200+10, 40, 6, 23, 0), | ||
149 | /* IEEE 802.11a, channel 44 */ | ||
150 | REG_RULE(5220-10, 5220+10, 40, 6, 23, 0), | ||
151 | /* IEEE 802.11a, channels 48..64 */ | 147 | /* IEEE 802.11a, channels 48..64 */ |
152 | REG_RULE(5240-10, 5320+10, 40, 6, 23, 0), | 148 | REG_RULE(5260-10, 5320+10, 40, 6, 20, NL80211_RRF_DFS), |
149 | /* IEEE 802.11a, channels 100..124 */ | ||
150 | REG_RULE(5500-10, 5590+10, 40, 6, 20, NL80211_RRF_DFS), | ||
151 | /* IEEE 802.11a, channels 132..144 */ | ||
152 | REG_RULE(5660-10, 5700+10, 40, 6, 20, NL80211_RRF_DFS), | ||
153 | /* IEEE 802.11a, channels 149..165, outdoor */ | 153 | /* IEEE 802.11a, channels 149..165, outdoor */ |
154 | REG_RULE(5745-10, 5825+10, 40, 6, 30, 0), | 154 | REG_RULE(5745-10, 5825+10, 40, 6, 30, 0), |
155 | } | 155 | } |
156 | }; | 156 | }; |
157 | 157 | ||
158 | static const struct ieee80211_regdomain jp_regdom = { | 158 | static const struct ieee80211_regdomain jp_regdom = { |
159 | .n_reg_rules = 3, | 159 | .n_reg_rules = 6, |
160 | .alpha2 = "JP", | 160 | .alpha2 = "JP", |
161 | .reg_rules = { | 161 | .reg_rules = { |
162 | /* IEEE 802.11b/g, channels 1..14 */ | 162 | /* IEEE 802.11b/g, channels 1..11 */ |
163 | REG_RULE(2412-10, 2484+10, 40, 6, 20, 0), | 163 | REG_RULE(2412-10, 2462+10, 40, 6, 20, 0), |
164 | /* IEEE 802.11a, channels 34..48 */ | 164 | /* IEEE 802.11b/g, channels 12..13 */ |
165 | REG_RULE(5170-10, 5240+10, 40, 6, 20, | 165 | REG_RULE(2467-10, 2472+10, 20, 6, 20, 0), |
166 | NL80211_RRF_PASSIVE_SCAN), | 166 | /* IEEE 802.11b/g, channel 14 */ |
167 | REG_RULE(2484-10, 2484+10, 20, 6, 20, NL80211_RRF_NO_OFDM), | ||
168 | /* IEEE 802.11a, channels 36..48 */ | ||
169 | REG_RULE(5180-10, 5240+10, 40, 6, 20, 0), | ||
167 | /* IEEE 802.11a, channels 52..64 */ | 170 | /* IEEE 802.11a, channels 52..64 */ |
168 | REG_RULE(5260-10, 5320+10, 40, 6, 20, | 171 | REG_RULE(5260-10, 5320+10, 40, 6, 20, NL80211_RRF_DFS), |
169 | NL80211_RRF_NO_IBSS | | 172 | /* IEEE 802.11a, channels 100..144 */ |
170 | NL80211_RRF_DFS), | 173 | REG_RULE(5500-10, 5700+10, 40, 6, 23, NL80211_RRF_DFS), |
171 | } | ||
172 | }; | ||
173 | |||
174 | static const struct ieee80211_regdomain eu_regdom = { | ||
175 | .n_reg_rules = 6, | ||
176 | /* | ||
177 | * This alpha2 is bogus, we leave it here just for stupid | ||
178 | * backward compatibility | ||
179 | */ | ||
180 | .alpha2 = "EU", | ||
181 | .reg_rules = { | ||
182 | /* IEEE 802.11b/g, channels 1..13 */ | ||
183 | REG_RULE(2412-10, 2472+10, 40, 6, 20, 0), | ||
184 | /* IEEE 802.11a, channel 36 */ | ||
185 | REG_RULE(5180-10, 5180+10, 40, 6, 23, | ||
186 | NL80211_RRF_PASSIVE_SCAN), | ||
187 | /* IEEE 802.11a, channel 40 */ | ||
188 | REG_RULE(5200-10, 5200+10, 40, 6, 23, | ||
189 | NL80211_RRF_PASSIVE_SCAN), | ||
190 | /* IEEE 802.11a, channel 44 */ | ||
191 | REG_RULE(5220-10, 5220+10, 40, 6, 23, | ||
192 | NL80211_RRF_PASSIVE_SCAN), | ||
193 | /* IEEE 802.11a, channels 48..64 */ | ||
194 | REG_RULE(5240-10, 5320+10, 40, 6, 20, | ||
195 | NL80211_RRF_NO_IBSS | | ||
196 | NL80211_RRF_DFS), | ||
197 | /* IEEE 802.11a, channels 100..140 */ | ||
198 | REG_RULE(5500-10, 5700+10, 40, 6, 30, | ||
199 | NL80211_RRF_NO_IBSS | | ||
200 | NL80211_RRF_DFS), | ||
201 | } | 174 | } |
202 | }; | 175 | }; |
203 | 176 | ||
@@ -207,15 +180,17 @@ static const struct ieee80211_regdomain *static_regdom(char *alpha2) | |||
207 | return &us_regdom; | 180 | return &us_regdom; |
208 | if (alpha2[0] == 'J' && alpha2[1] == 'P') | 181 | if (alpha2[0] == 'J' && alpha2[1] == 'P') |
209 | return &jp_regdom; | 182 | return &jp_regdom; |
183 | /* Use world roaming rules for "EU", since it was a pseudo | ||
184 | domain anyway... */ | ||
210 | if (alpha2[0] == 'E' && alpha2[1] == 'U') | 185 | if (alpha2[0] == 'E' && alpha2[1] == 'U') |
211 | return &eu_regdom; | 186 | return &world_regdom; |
212 | /* Default, as per the old rules */ | 187 | /* Default, world roaming rules */ |
213 | return &us_regdom; | 188 | return &world_regdom; |
214 | } | 189 | } |
215 | 190 | ||
216 | static bool is_old_static_regdom(const struct ieee80211_regdomain *rd) | 191 | static bool is_old_static_regdom(const struct ieee80211_regdomain *rd) |
217 | { | 192 | { |
218 | if (rd == &us_regdom || rd == &jp_regdom || rd == &eu_regdom) | 193 | if (rd == &us_regdom || rd == &jp_regdom || rd == &world_regdom) |
219 | return true; | 194 | return true; |
220 | return false; | 195 | return false; |
221 | } | 196 | } |
diff --git a/net/wireless/wext-compat.c b/net/wireless/wext-compat.c index 2fa8de1140e9..4198243a3dff 100644 --- a/net/wireless/wext-compat.c +++ b/net/wireless/wext-compat.c | |||
@@ -479,6 +479,7 @@ static int __cfg80211_set_encryption(struct cfg80211_registered_device *rdev, | |||
479 | } | 479 | } |
480 | err = rdev->ops->del_key(&rdev->wiphy, dev, idx, addr); | 480 | err = rdev->ops->del_key(&rdev->wiphy, dev, idx, addr); |
481 | } | 481 | } |
482 | wdev->wext.connect.privacy = false; | ||
482 | /* | 483 | /* |
483 | * Applications using wireless extensions expect to be | 484 | * Applications using wireless extensions expect to be |
484 | * able to delete keys that don't exist, so allow that. | 485 | * able to delete keys that don't exist, so allow that. |