summaryrefslogtreecommitdiffstats
path: root/drivers/staging/rtl8723au/os_dep
diff options
context:
space:
mode:
authorJes Sorensen <Jes.Sorensen@redhat.com>2014-06-24 15:03:49 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-24 13:51:01 -0400
commitefd4216c2d558f2faf03284e95a9c1c1297d801a (patch)
tree7473a87e5ff88cc71bf72c83b73c8bba0e318aa5 /drivers/staging/rtl8723au/os_dep
parent6e6e2d633b7410953597eff63ccb210aa2aadd33 (diff)
staging: rtl8723au: rtw_cfg80211_{ap_}set_encryption(): No more string parsing to determine cipher
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8723au/os_dep')
-rw-r--r--drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c37
1 files changed, 13 insertions, 24 deletions
diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
index 7aaa3f8bda9..7e34f890a3b 100644
--- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
@@ -855,7 +855,8 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, u8 key_index,
} else {
/* Jeff: don't disable ieee8021x_blocked
while clearing key */
- if (strcmp(param->u.crypt.alg, "none") != 0)
+ if (keyparms->cipher != IW_AUTH_CIPHER_NONE &&
+ keyparms->cipher != 0)
psta->ieee8021x_blocked = false;
if ((padapter->securitypriv.ndisencryptstatus ==
@@ -922,7 +923,8 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, u8 key_index,
if (pbcmc_sta) {
/* Jeff: don't disable ieee8021x_blocked
while clearing key */
- if (strcmp(param->u.crypt.alg, "none") != 0)
+ if (keyparms->cipher != IW_AUTH_CIPHER_NONE &&
+ keyparms->cipher != 0)
pbcmc_sta->ieee8021x_blocked = false;
if ((padapter->securitypriv.ndisencryptstatus ==
@@ -951,7 +953,6 @@ static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
u8 key_index, bool pairwise,
const u8 *mac_addr, struct key_params *params)
{
- char *alg_name;
u32 param_len;
struct ieee_param *param;
int set_tx, ret = 0;
@@ -967,37 +968,25 @@ static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
DBG_8723A("key_index =%d\n", key_index);
DBG_8723A("pairwise =%d\n", pairwise);
- param_len = sizeof(struct ieee_param) + params->key_len;
- param = kzalloc(param_len, GFP_KERNEL);
- if (!param)
- return -ENOMEM;
-
- param->cmd = IEEE_CMD_SET_ENCRYPTION;
- eth_broadcast_addr(param->sta_addr);
-
switch (params->cipher) {
case IW_AUTH_CIPHER_NONE:
- /* todo: remove key */
- /* remove = 1; */
- alg_name = "none";
- break;
case WLAN_CIPHER_SUITE_WEP40:
case WLAN_CIPHER_SUITE_WEP104:
- alg_name = "WEP";
- break;
case WLAN_CIPHER_SUITE_TKIP:
- alg_name = "TKIP";
- break;
case WLAN_CIPHER_SUITE_CCMP:
- alg_name = "CCMP";
break;
-
default:
ret = -ENOTSUPP;
- goto addkey_end;
+ goto exit;
}
- strncpy((char *)param->u.crypt.alg, alg_name, IEEE_CRYPT_ALG_NAME_LEN);
+ param_len = sizeof(struct ieee_param) + params->key_len;
+ param = kzalloc(param_len, GFP_KERNEL);
+ if (!param)
+ return -ENOMEM;
+
+ param->cmd = IEEE_CMD_SET_ENCRYPTION;
+ eth_broadcast_addr(param->sta_addr);
if (!mac_addr || is_broadcast_ether_addr(mac_addr))
set_tx = 0; /* for wpa/wpa2 group key */
@@ -1021,9 +1010,9 @@ static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev,
}
-addkey_end:
kfree(param);
+exit:
return ret;
}