staging: rtl8723au: rtw_cfg80211_{ap_}set_encryption(): No more string parsing to...
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 24 Jun 2014 13:03:49 +0000 (15:03 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Jun 2014 17:51:01 +0000 (13:51 -0400)
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c

index 7aaa3f8bda9dea29a120092124b64f21180e7b40..7e34f890a3b39abe5a11776633a693584a588137 100644 (file)
@@ -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;
 }