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>
This commit is contained in:
Родитель
161391725e
Коммит
9f77ccab57
|
@ -921,6 +921,7 @@ static int freq_to_dsconfig(struct iw_freq *freq, unsigned int *dsconfig)
|
|||
/*
|
||||
* common functions
|
||||
*/
|
||||
static int set_infra_mode(struct usbnet *usbdev, int mode);
|
||||
static void restore_keys(struct usbnet *usbdev);
|
||||
static int rndis_check_bssid_list(struct usbnet *usbdev);
|
||||
|
||||
|
@ -1014,6 +1015,11 @@ static int disassociate(struct usbnet *usbdev, int reset_ssid)
|
|||
/* disassociate causes radio to be turned off; if reset_ssid
|
||||
* is given, set random ssid to enable radio */
|
||||
if (reset_ssid) {
|
||||
/* Set device to infrastructure mode so we don't get ad-hoc
|
||||
* 'media connect' indications with the random ssid.
|
||||
*/
|
||||
set_infra_mode(usbdev, NDIS_80211_INFRA_INFRA);
|
||||
|
||||
ssid.length = cpu_to_le32(sizeof(ssid.essid));
|
||||
get_random_bytes(&ssid.essid[2], sizeof(ssid.essid)-2);
|
||||
ssid.essid[0] = 0x1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче