diff options
-rw-r--r-- | drivers/net/wireless/libertas/assoc.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/defs.h | 7 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/dev.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/fw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/join.c | 31 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/wext.c | 52 |
6 files changed, 43 insertions, 54 deletions
diff --git a/drivers/net/wireless/libertas/assoc.c b/drivers/net/wireless/libertas/assoc.c index dfffabc41dd0..7ebd83605776 100644 --- a/drivers/net/wireless/libertas/assoc.c +++ b/drivers/net/wireless/libertas/assoc.c | |||
@@ -300,8 +300,7 @@ static int should_deauth_infrastructure(wlan_adapter *adapter, | |||
300 | } | 300 | } |
301 | 301 | ||
302 | if (test_bit(ASSOC_FLAG_SECINFO, &assoc_req->flags)) { | 302 | if (test_bit(ASSOC_FLAG_SECINFO, &assoc_req->flags)) { |
303 | if (adapter->secinfo.authmode != | 303 | if (adapter->secinfo.auth_mode != assoc_req->secinfo.auth_mode) { |
304 | assoc_req->secinfo.authmode) { | ||
305 | lbs_pr_debug(1, "Deauthenticating due to updated security " | 304 | lbs_pr_debug(1, "Deauthenticating due to updated security " |
306 | "info in configuration request.\n"); | 305 | "info in configuration request.\n"); |
307 | return 1; | 306 | return 1; |
diff --git a/drivers/net/wireless/libertas/defs.h b/drivers/net/wireless/libertas/defs.h index a6dee5e4c1b3..9f5459332bbc 100644 --- a/drivers/net/wireless/libertas/defs.h +++ b/drivers/net/wireless/libertas/defs.h | |||
@@ -276,13 +276,6 @@ enum WLAN_802_11_NETWORK_INFRASTRUCTURE { | |||
276 | wlan802_11infrastructuremax | 276 | wlan802_11infrastructuremax |
277 | }; | 277 | }; |
278 | 278 | ||
279 | /** WLAN_802_11_AUTHENTICATION_MODE */ | ||
280 | enum WLAN_802_11_AUTHENTICATION_MODE { | ||
281 | wlan802_11authmodeopen = 0x00, | ||
282 | wlan802_11authmodeshared = 0x01, | ||
283 | wlan802_11authmodenetworkEAP = 0x80, | ||
284 | }; | ||
285 | |||
286 | /** WLAN_802_11_WEP_STATUS */ | 279 | /** WLAN_802_11_WEP_STATUS */ |
287 | enum WLAN_802_11_WEP_STATUS { | 280 | enum WLAN_802_11_WEP_STATUS { |
288 | wlan802_11WEPenabled, | 281 | wlan802_11WEPenabled, |
diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h index 440b96d4da80..eb490a645cc2 100644 --- a/drivers/net/wireless/libertas/dev.h +++ b/drivers/net/wireless/libertas/dev.h | |||
@@ -58,7 +58,7 @@ struct wlan_802_11_security { | |||
58 | u8 WPAenabled; | 58 | u8 WPAenabled; |
59 | u8 WPA2enabled; | 59 | u8 WPA2enabled; |
60 | enum WLAN_802_11_WEP_STATUS WEPstatus; | 60 | enum WLAN_802_11_WEP_STATUS WEPstatus; |
61 | enum WLAN_802_11_AUTHENTICATION_MODE authmode; | 61 | u8 auth_mode; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | /** Current Basic Service Set State Structure */ | 64 | /** Current Basic Service Set State Structure */ |
diff --git a/drivers/net/wireless/libertas/fw.c b/drivers/net/wireless/libertas/fw.c index 6911113f1acf..f2d626d7de48 100644 --- a/drivers/net/wireless/libertas/fw.c +++ b/drivers/net/wireless/libertas/fw.c | |||
@@ -200,7 +200,7 @@ static void wlan_init_adapter(wlan_private * priv) | |||
200 | memset(&adapter->wep_keys[i], 0, sizeof(struct WLAN_802_11_KEY)); | 200 | memset(&adapter->wep_keys[i], 0, sizeof(struct WLAN_802_11_KEY)); |
201 | adapter->wep_tx_keyidx = 0; | 201 | adapter->wep_tx_keyidx = 0; |
202 | adapter->secinfo.WEPstatus = wlan802_11WEPdisabled; | 202 | adapter->secinfo.WEPstatus = wlan802_11WEPdisabled; |
203 | adapter->secinfo.authmode = wlan802_11authmodeopen; | 203 | adapter->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
204 | adapter->inframode = wlan802_11infrastructure; | 204 | adapter->inframode = wlan802_11infrastructure; |
205 | 205 | ||
206 | adapter->assoc_req = NULL; | 206 | adapter->assoc_req = NULL; |
diff --git a/drivers/net/wireless/libertas/join.c b/drivers/net/wireless/libertas/join.c index 11682cbe752b..149531c77938 100644 --- a/drivers/net/wireless/libertas/join.c +++ b/drivers/net/wireless/libertas/join.c | |||
@@ -398,22 +398,39 @@ int libertas_cmd_80211_authenticate(wlan_private * priv, | |||
398 | void *pdata_buf) | 398 | void *pdata_buf) |
399 | { | 399 | { |
400 | wlan_adapter *adapter = priv->adapter; | 400 | wlan_adapter *adapter = priv->adapter; |
401 | struct cmd_ds_802_11_authenticate *pauthenticate = | 401 | struct cmd_ds_802_11_authenticate *pauthenticate = &cmd->params.auth; |
402 | &cmd->params.auth; | 402 | int ret = -1; |
403 | u8 *bssid = pdata_buf; | 403 | u8 *bssid = pdata_buf; |
404 | 404 | ||
405 | cmd->command = cpu_to_le16(cmd_802_11_authenticate); | 405 | cmd->command = cpu_to_le16(cmd_802_11_authenticate); |
406 | cmd->size = | 406 | cmd->size = cpu_to_le16(sizeof(struct cmd_ds_802_11_authenticate) |
407 | cpu_to_le16(sizeof(struct cmd_ds_802_11_authenticate) | 407 | + S_DS_GEN); |
408 | + S_DS_GEN); | 408 | |
409 | /* translate auth mode to 802.11 defined wire value */ | ||
410 | switch (adapter->secinfo.auth_mode) { | ||
411 | case IW_AUTH_ALG_OPEN_SYSTEM: | ||
412 | pauthenticate->authtype = 0x00; | ||
413 | break; | ||
414 | case IW_AUTH_ALG_SHARED_KEY: | ||
415 | pauthenticate->authtype = 0x01; | ||
416 | break; | ||
417 | case IW_AUTH_ALG_LEAP: | ||
418 | pauthenticate->authtype = 0x80; | ||
419 | break; | ||
420 | default: | ||
421 | lbs_pr_debug(1, "AUTH_CMD: invalid auth alg 0x%X\n", | ||
422 | adapter->secinfo.auth_mode); | ||
423 | goto out; | ||
424 | } | ||
409 | 425 | ||
410 | pauthenticate->authtype = adapter->secinfo.authmode; | ||
411 | memcpy(pauthenticate->macaddr, bssid, ETH_ALEN); | 426 | memcpy(pauthenticate->macaddr, bssid, ETH_ALEN); |
412 | 427 | ||
413 | lbs_pr_debug(1, "AUTH_CMD: Bssid is : %x:%x:%x:%x:%x:%x\n", | 428 | lbs_pr_debug(1, "AUTH_CMD: Bssid is : %x:%x:%x:%x:%x:%x\n", |
414 | bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]); | 429 | bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]); |
430 | ret = 0; | ||
415 | 431 | ||
416 | return 0; | 432 | out: |
433 | return ret; | ||
417 | } | 434 | } |
418 | 435 | ||
419 | int libertas_cmd_80211_deauthenticate(wlan_private * priv, | 436 | int libertas_cmd_80211_deauthenticate(wlan_private * priv, |
diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c index cfce23d50524..22eacd2b6de4 100644 --- a/drivers/net/wireless/libertas/wext.c +++ b/drivers/net/wireless/libertas/wext.c | |||
@@ -1772,13 +1772,13 @@ static int wlan_get_encode(struct net_device *dev, | |||
1772 | dwrq->flags = 0; | 1772 | dwrq->flags = 0; |
1773 | 1773 | ||
1774 | /* Authentication method */ | 1774 | /* Authentication method */ |
1775 | switch (adapter->secinfo.authmode) { | 1775 | switch (adapter->secinfo.auth_mode) { |
1776 | case wlan802_11authmodeopen: | 1776 | case IW_AUTH_ALG_OPEN_SYSTEM: |
1777 | dwrq->flags = IW_ENCODE_OPEN; | 1777 | dwrq->flags = IW_ENCODE_OPEN; |
1778 | break; | 1778 | break; |
1779 | 1779 | ||
1780 | case wlan802_11authmodeshared: | 1780 | case IW_AUTH_ALG_SHARED_KEY: |
1781 | case wlan802_11authmodenetworkEAP: | 1781 | case IW_AUTH_ALG_LEAP: |
1782 | dwrq->flags = IW_ENCODE_RESTRICTED; | 1782 | dwrq->flags = IW_ENCODE_RESTRICTED; |
1783 | break; | 1783 | break; |
1784 | default: | 1784 | default: |
@@ -1915,7 +1915,7 @@ static void disable_wep(struct assoc_request *assoc_req) | |||
1915 | int i; | 1915 | int i; |
1916 | 1916 | ||
1917 | /* Set Open System auth mode */ | 1917 | /* Set Open System auth mode */ |
1918 | assoc_req->secinfo.authmode = wlan802_11authmodeopen; | 1918 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
1919 | 1919 | ||
1920 | /* Clear WEP keys and mark WEP as disabled */ | 1920 | /* Clear WEP keys and mark WEP as disabled */ |
1921 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; | 1921 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; |
@@ -1984,9 +1984,9 @@ static int wlan_set_encode(struct net_device *dev, | |||
1984 | set_bit(ASSOC_FLAG_WEP_TX_KEYIDX, &assoc_req->flags); | 1984 | set_bit(ASSOC_FLAG_WEP_TX_KEYIDX, &assoc_req->flags); |
1985 | 1985 | ||
1986 | if (dwrq->flags & IW_ENCODE_RESTRICTED) { | 1986 | if (dwrq->flags & IW_ENCODE_RESTRICTED) { |
1987 | assoc_req->secinfo.authmode = wlan802_11authmodeshared; | 1987 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_SHARED_KEY; |
1988 | } else if (dwrq->flags & IW_ENCODE_OPEN) { | 1988 | } else if (dwrq->flags & IW_ENCODE_OPEN) { |
1989 | assoc_req->secinfo.authmode = wlan802_11authmodeopen; | 1989 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
1990 | } | 1990 | } |
1991 | 1991 | ||
1992 | out: | 1992 | out: |
@@ -2144,11 +2144,9 @@ static int wlan_set_encodeext(struct net_device *dev, | |||
2144 | goto out; | 2144 | goto out; |
2145 | 2145 | ||
2146 | if (dwrq->flags & IW_ENCODE_RESTRICTED) { | 2146 | if (dwrq->flags & IW_ENCODE_RESTRICTED) { |
2147 | assoc_req->secinfo.authmode = | 2147 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_SHARED_KEY; |
2148 | wlan802_11authmodeshared; | ||
2149 | } else if (dwrq->flags & IW_ENCODE_OPEN) { | 2148 | } else if (dwrq->flags & IW_ENCODE_OPEN) { |
2150 | assoc_req->secinfo.authmode = | 2149 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
2151 | wlan802_11authmodeopen; | ||
2152 | } | 2150 | } |
2153 | 2151 | ||
2154 | /* Mark the various WEP bits as modified */ | 2152 | /* Mark the various WEP bits as modified */ |
@@ -2334,14 +2332,12 @@ static int wlan_set_auth(struct net_device *dev, | |||
2334 | if (dwrq->value & IW_AUTH_WPA_VERSION_WPA) { | 2332 | if (dwrq->value & IW_AUTH_WPA_VERSION_WPA) { |
2335 | assoc_req->secinfo.WPAenabled = 1; | 2333 | assoc_req->secinfo.WPAenabled = 1; |
2336 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; | 2334 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; |
2337 | assoc_req->secinfo.authmode = | 2335 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
2338 | wlan802_11authmodeopen; | ||
2339 | } | 2336 | } |
2340 | if (dwrq->value & IW_AUTH_WPA_VERSION_WPA2) { | 2337 | if (dwrq->value & IW_AUTH_WPA_VERSION_WPA2) { |
2341 | assoc_req->secinfo.WPA2enabled = 1; | 2338 | assoc_req->secinfo.WPA2enabled = 1; |
2342 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; | 2339 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; |
2343 | assoc_req->secinfo.authmode = | 2340 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
2344 | wlan802_11authmodeopen; | ||
2345 | } | 2341 | } |
2346 | updated = 1; | 2342 | updated = 1; |
2347 | break; | 2343 | break; |
@@ -2359,14 +2355,11 @@ static int wlan_set_auth(struct net_device *dev, | |||
2359 | 2355 | ||
2360 | case IW_AUTH_80211_AUTH_ALG: | 2356 | case IW_AUTH_80211_AUTH_ALG: |
2361 | if (dwrq->value & IW_AUTH_ALG_SHARED_KEY) { | 2357 | if (dwrq->value & IW_AUTH_ALG_SHARED_KEY) { |
2362 | assoc_req->secinfo.authmode = | 2358 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_SHARED_KEY; |
2363 | wlan802_11authmodeshared; | ||
2364 | } else if (dwrq->value & IW_AUTH_ALG_OPEN_SYSTEM) { | 2359 | } else if (dwrq->value & IW_AUTH_ALG_OPEN_SYSTEM) { |
2365 | assoc_req->secinfo.authmode = | 2360 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
2366 | wlan802_11authmodeopen; | ||
2367 | } else if (dwrq->value & IW_AUTH_ALG_LEAP) { | 2361 | } else if (dwrq->value & IW_AUTH_ALG_LEAP) { |
2368 | assoc_req->secinfo.authmode = | 2362 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_LEAP; |
2369 | wlan802_11authmodenetworkEAP; | ||
2370 | } else { | 2363 | } else { |
2371 | ret = -EINVAL; | 2364 | ret = -EINVAL; |
2372 | } | 2365 | } |
@@ -2380,8 +2373,7 @@ static int wlan_set_auth(struct net_device *dev, | |||
2380 | assoc_req->secinfo.WPAenabled = 1; | 2373 | assoc_req->secinfo.WPAenabled = 1; |
2381 | assoc_req->secinfo.WPA2enabled = 1; | 2374 | assoc_req->secinfo.WPA2enabled = 1; |
2382 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; | 2375 | assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled; |
2383 | assoc_req->secinfo.authmode = | 2376 | assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM; |
2384 | wlan802_11authmodeopen; | ||
2385 | } | 2377 | } |
2386 | } else { | 2378 | } else { |
2387 | assoc_req->secinfo.WPAenabled = 0; | 2379 | assoc_req->secinfo.WPAenabled = 0; |
@@ -2438,19 +2430,7 @@ static int wlan_get_auth(struct net_device *dev, | |||
2438 | break; | 2430 | break; |
2439 | 2431 | ||
2440 | case IW_AUTH_80211_AUTH_ALG: | 2432 | case IW_AUTH_80211_AUTH_ALG: |
2441 | switch (adapter->secinfo.authmode) { | 2433 | dwrq->value = adapter->secinfo.auth_mode; |
2442 | case wlan802_11authmodeshared: | ||
2443 | dwrq->value = IW_AUTH_ALG_SHARED_KEY; | ||
2444 | break; | ||
2445 | case wlan802_11authmodeopen: | ||
2446 | dwrq->value = IW_AUTH_ALG_OPEN_SYSTEM; | ||
2447 | break; | ||
2448 | case wlan802_11authmodenetworkEAP: | ||
2449 | dwrq->value = IW_AUTH_ALG_LEAP; | ||
2450 | break; | ||
2451 | default: | ||
2452 | break; | ||
2453 | } | ||
2454 | break; | 2434 | break; |
2455 | 2435 | ||
2456 | case IW_AUTH_WPA_ENABLED: | 2436 | case IW_AUTH_WPA_ENABLED: |