From 2dcf6b4c73a3b92774955b83e5bd7c5cec2c87e6 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 24 Jun 2014 15:03:54 +0200 Subject: [PATCH] staging: rtl8723au: Eliminate set_wep_key() and call set_group_key() directly This also eliminates another round of determine algorithm based on key length, followed by determine key length based on algorithm. Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8723au/os_dep/ioctl_cfg80211.c | 45 +++---------------- 1 file changed, 6 insertions(+), 39 deletions(-) diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c index 87f953c2eaec..93dc844a10b3 100644 --- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c @@ -417,10 +417,9 @@ exit: return res; } -static int set_group_key(struct rtw_adapter *padapter, const u8 *key, u32 alg, - u8 keyid) +static int set_group_key(struct rtw_adapter *padapter, struct key_params *parms, + u32 alg, u8 keyid) { - u8 keylen; struct cmd_obj *pcmd; struct setkey_parm *psetkeyparm; struct cmd_priv *pcmdpriv = &padapter->cmdpriv; @@ -453,20 +452,7 @@ static int set_group_key(struct rtw_adapter *padapter, const u8 *key, u32 alg, psetkeyparm->set_tx = 1; - switch (alg) { - case WLAN_CIPHER_SUITE_WEP40: - keylen = 5; - break; - case WLAN_CIPHER_SUITE_WEP104: - keylen = 13; - break; - case WLAN_CIPHER_SUITE_TKIP: - case WLAN_CIPHER_SUITE_CCMP: - default: - keylen = 16; - } - - memcpy(&psetkeyparm->key[0], key, keylen); + memcpy(&psetkeyparm->key, parms->key, parms->key_len); pcmd->cmdcode = _SetKey_CMD_; pcmd->parmbuf = (u8 *) psetkeyparm; @@ -480,25 +466,6 @@ exit: return res; } -static int set_wep_key(struct rtw_adapter *padapter, const u8 *key, u16 keylen, - u8 keyid) -{ - u32 alg; - - switch (keylen) { - case 5: - alg = WLAN_CIPHER_SUITE_WEP40; - break; - case 13: - alg = WLAN_CIPHER_SUITE_WEP104; - break; - default: - alg = 0; - } - - return set_group_key(padapter, key, alg, keyid); -} - static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, u8 key_index, int set_tx, const u8 *sta_addr, struct key_params *keyparms) @@ -548,7 +515,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, u8 key_index, psecuritypriv->wep_key[key_index].keylen = key_len; - set_wep_key(padapter, keyparms->key, key_len, key_index); + set_group_key(padapter, keyparms, keyparms->cipher, key_index); goto exit; } @@ -612,7 +579,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, u8 key_index, psecuritypriv->dot11PrivacyAlgrthm = psecuritypriv->dot118021XGrpPrivacy; - set_group_key(padapter, keyparms->key, + set_group_key(padapter, keyparms, psecuritypriv->dot118021XGrpPrivacy, key_index); @@ -723,7 +690,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, u8 key_index, psecuritypriv->dot11PrivacyAlgrthm = psecuritypriv->dot118021XGrpPrivacy; - set_group_key(padapter, keyparms->key, + set_group_key(padapter, keyparms, psecuritypriv->dot118021XGrpPrivacy, key_index); -- 2.30.2