diff options
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r-- | net/wireless/sme.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c index 3728d2b88b25..af91192eedf5 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <net/cfg80211.h> | 13 | #include <net/cfg80211.h> |
14 | #include <net/rtnetlink.h> | 14 | #include <net/rtnetlink.h> |
15 | #include "nl80211.h" | 15 | #include "nl80211.h" |
16 | #include "reg.h" | ||
16 | 17 | ||
17 | struct cfg80211_conn { | 18 | struct cfg80211_conn { |
18 | struct cfg80211_connect_params params; | 19 | struct cfg80211_connect_params params; |
@@ -320,6 +321,7 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | |||
320 | struct cfg80211_bss *bss) | 321 | struct cfg80211_bss *bss) |
321 | { | 322 | { |
322 | struct wireless_dev *wdev = dev->ieee80211_ptr; | 323 | struct wireless_dev *wdev = dev->ieee80211_ptr; |
324 | u8 *country_ie; | ||
323 | #ifdef CONFIG_WIRELESS_EXT | 325 | #ifdef CONFIG_WIRELESS_EXT |
324 | union iwreq_data wrqu; | 326 | union iwreq_data wrqu; |
325 | #endif | 327 | #endif |
@@ -401,6 +403,20 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | |||
401 | 403 | ||
402 | wdev->sme_state = CFG80211_SME_CONNECTED; | 404 | wdev->sme_state = CFG80211_SME_CONNECTED; |
403 | cfg80211_upload_connect_keys(wdev); | 405 | cfg80211_upload_connect_keys(wdev); |
406 | |||
407 | country_ie = (u8 *) ieee80211_bss_get_ie(bss, WLAN_EID_COUNTRY); | ||
408 | |||
409 | if (!country_ie) | ||
410 | return; | ||
411 | |||
412 | /* | ||
413 | * ieee80211_bss_get_ie() ensures we can access: | ||
414 | * - country_ie + 2, the start of the country ie data, and | ||
415 | * - and country_ie[1] which is the IE length | ||
416 | */ | ||
417 | regulatory_hint_11d(wdev->wiphy, | ||
418 | country_ie + 2, | ||
419 | country_ie[1]); | ||
404 | } | 420 | } |
405 | 421 | ||
406 | void cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | 422 | void cfg80211_connect_result(struct net_device *dev, const u8 *bssid, |