diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2009-08-28 05:59:26 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-08-28 14:40:57 -0400 |
commit | 9f77ccab57534f45b0289ceae3a6b85478d14182 (patch) | |
tree | 1e155ec129d770d60db85d59e58eaf4ea178838b /drivers | |
parent | 161391725eba1f07e98594369cfcb10c848ef352 (diff) |
rndis_wlan: enable infrastructure before setting random essid
Random essid must be set to turn on radio when not connected. If device is
in ad-hoc mode, this results 'media connect' indications with the random
essid which should be ignored.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/rndis_wlan.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c index d11762011dc2..c5a674d8d1fb 100644 --- a/drivers/net/wireless/rndis_wlan.c +++ b/drivers/net/wireless/rndis_wlan.c | |||
@@ -921,6 +921,7 @@ static int freq_to_dsconfig(struct iw_freq *freq, unsigned int *dsconfig) | |||
921 | /* | 921 | /* |
922 | * common functions | 922 | * common functions |
923 | */ | 923 | */ |
924 | static int set_infra_mode(struct usbnet *usbdev, int mode); | ||
924 | static void restore_keys(struct usbnet *usbdev); | 925 | static void restore_keys(struct usbnet *usbdev); |
925 | static int rndis_check_bssid_list(struct usbnet *usbdev); | 926 | static int rndis_check_bssid_list(struct usbnet *usbdev); |
926 | 927 | ||
@@ -1014,6 +1015,11 @@ static int disassociate(struct usbnet *usbdev, int reset_ssid) | |||
1014 | /* disassociate causes radio to be turned off; if reset_ssid | 1015 | /* disassociate causes radio to be turned off; if reset_ssid |
1015 | * is given, set random ssid to enable radio */ | 1016 | * is given, set random ssid to enable radio */ |
1016 | if (reset_ssid) { | 1017 | if (reset_ssid) { |
1018 | /* Set device to infrastructure mode so we don't get ad-hoc | ||
1019 | * 'media connect' indications with the random ssid. | ||
1020 | */ | ||
1021 | set_infra_mode(usbdev, NDIS_80211_INFRA_INFRA); | ||
1022 | |||
1017 | ssid.length = cpu_to_le32(sizeof(ssid.essid)); | 1023 | ssid.length = cpu_to_le32(sizeof(ssid.essid)); |
1018 | get_random_bytes(&ssid.essid[2], sizeof(ssid.essid)-2); | 1024 | get_random_bytes(&ssid.essid[2], sizeof(ssid.essid)-2); |
1019 | ssid.essid[0] = 0x1; | 1025 | ssid.essid[0] = 0x1; |