From 4e297c21bf2932178e7bdaeff654914b576e5f70 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 24 Jun 2014 15:03:36 +0200 Subject: [PATCH] staging: rtl8723au: rtw_cfg80211_ap_set_encryption() is only called for WIFI_AP_STATE No point checking it again in here, twice! Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- .../staging/rtl8723au/os_dep/ioctl_cfg80211.c | 237 ++++++++---------- 1 file changed, 110 insertions(+), 127 deletions(-) diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c index f44d0f4629d3..bbc4ac50bf9b 100644 --- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c @@ -509,7 +509,6 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, u8 wep_key_idx; struct sta_info *psta = NULL, *pbcmc_sta = NULL; struct rtw_adapter *padapter = netdev_priv(dev); - struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct security_priv *psecuritypriv = &padapter->securitypriv; struct sta_priv *pstapriv = &padapter->stapriv; @@ -598,7 +597,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, } - if (!psta && check_fwstate(pmlmepriv, WIFI_AP_STATE)) { /* group key */ + if (!psta) { /* group key */ if (param->u.crypt.set_tx == 0) { /* group key */ if (keyparms->cipher == WLAN_CIPHER_SUITE_WEP40 || keyparms->cipher == WLAN_CIPHER_SUITE_WEP104) { @@ -620,7 +619,8 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, DBG_8723A("%s, set group_key, TKIP\n", __func__); - psecuritypriv->dot118021XGrpPrivacy = WLAN_CIPHER_SUITE_TKIP; + psecuritypriv->dot118021XGrpPrivacy = + WLAN_CIPHER_SUITE_TKIP; memcpy(psecuritypriv-> dot118021XGrpKey[param->u.crypt.idx]. @@ -645,7 +645,8 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, DBG_8723A("%s, set group_key, CCMP\n", __func__); - psecuritypriv->dot118021XGrpPrivacy = WLAN_CIPHER_SUITE_CCMP; + psecuritypriv->dot118021XGrpPrivacy = + WLAN_CIPHER_SUITE_CCMP; memcpy(psecuritypriv-> dot118021XGrpKey[param->u.crypt.idx]. @@ -685,151 +686,134 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, goto exit; } - if (psecuritypriv->dot11AuthAlgrthm == - dot11AuthAlgrthm_8021X && psta) { /* psk/802_1x */ - if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { - if (param->u.crypt.set_tx == 1) { - /* pairwise key */ - memcpy(psta->dot118021x_UncstKey.skey, - param->u.crypt.key, - (param->u.crypt.key_len > - 16 ? 16 : param->u.crypt.key_len)); + if (psecuritypriv->dot11AuthAlgrthm == dot11AuthAlgrthm_8021X && psta) { + /* psk/802_1x */ + if (param->u.crypt.set_tx == 1) { + /* pairwise key */ + memcpy(psta->dot118021x_UncstKey.skey, + param->u.crypt.key, + (param->u.crypt.key_len > + 16 ? 16 : param->u.crypt.key_len)); - if (keyparms->cipher == - WLAN_CIPHER_SUITE_WEP40 || - keyparms->cipher == - WLAN_CIPHER_SUITE_WEP104) { - DBG_8723A("%s, set pairwise key, WEP\n", - __func__); - - psta->dot118021XPrivacy = WLAN_CIPHER_SUITE_WEP40; - if (param->u.crypt.key_len == 13) { - psta->dot118021XPrivacy = - WLAN_CIPHER_SUITE_WEP104; - } - } else if (keyparms->cipher == - WLAN_CIPHER_SUITE_TKIP) { - DBG_8723A("%s, set pairwise key, " - "TKIP\n", __func__); + if (keyparms->cipher == WLAN_CIPHER_SUITE_WEP40 || + keyparms->cipher == WLAN_CIPHER_SUITE_WEP104) { + DBG_8723A("%s, set pairwise key, WEP\n", + __func__); + psta->dot118021XPrivacy = + WLAN_CIPHER_SUITE_WEP40; + if (param->u.crypt.key_len == 13) { psta->dot118021XPrivacy = - WLAN_CIPHER_SUITE_TKIP; + WLAN_CIPHER_SUITE_WEP104; + } + } else if (keyparms->cipher == WLAN_CIPHER_SUITE_TKIP) { + DBG_8723A("%s, set pairwise key, TKIP\n", + __func__); - /* DEBUG_ERR("set key length :param->u.crypt.key_len =%d\n", param->u.crypt.key_len); */ - /* set mic key */ - memcpy(psta->dot11tkiptxmickey.skey, - ¶m->u.crypt.key[16], 8); - memcpy(psta->dot11tkiprxmickey.skey, - ¶m->u.crypt.key[24], 8); + psta->dot118021XPrivacy = + WLAN_CIPHER_SUITE_TKIP; - psecuritypriv->busetkipkey = 1; + /* DEBUG_ERR("set key length :param->u.crypt.key_len =%d\n", param->u.crypt.key_len); */ + /* set mic key */ + memcpy(psta->dot11tkiptxmickey.skey, + ¶m->u.crypt.key[16], 8); + memcpy(psta->dot11tkiprxmickey.skey, + ¶m->u.crypt.key[24], 8); - } else if (keyparms->cipher == - WLAN_CIPHER_SUITE_CCMP) { - DBG_8723A("%s, set pairwise key, " - "CCMP\n", __func__); + psecuritypriv->busetkipkey = 1; - psta->dot118021XPrivacy = - WLAN_CIPHER_SUITE_CCMP; - } else { - DBG_8723A("%s, set pairwise key, " - "none\n", __func__); + } else if (keyparms->cipher == WLAN_CIPHER_SUITE_CCMP) { + DBG_8723A("%s, set pairwise key, CCMP\n", + __func__); - psta->dot118021XPrivacy = 0; - } + psta->dot118021XPrivacy = + WLAN_CIPHER_SUITE_CCMP; + } else { + DBG_8723A("%s, set pairwise key, none\n", + __func__); + + psta->dot118021XPrivacy = 0; + } - set_pairwise_key(padapter, psta); + set_pairwise_key(padapter, psta); - psta->ieee8021x_blocked = false; + psta->ieee8021x_blocked = false; - psta->bpairwise_key_installed = true; - } else { /* group key??? */ - if (keyparms->cipher == - WLAN_CIPHER_SUITE_WEP40 || - keyparms->cipher == - WLAN_CIPHER_SUITE_WEP104) { - memcpy(psecuritypriv-> - dot118021XGrpKey[param->u.crypt. - idx].skey, - param->u.crypt.key, - (param->u.crypt.key_len > - 16 ? 16 : param->u.crypt. - key_len)); + psta->bpairwise_key_installed = true; + } else { /* group key??? */ + if (keyparms->cipher == WLAN_CIPHER_SUITE_WEP40 || + keyparms->cipher == WLAN_CIPHER_SUITE_WEP104) { + memcpy(psecuritypriv-> + dot118021XGrpKey[param->u.crypt. + idx].skey, + param->u.crypt.key, + (param->u.crypt.key_len > + 16 ? 16 : param->u.crypt.key_len)); + psecuritypriv->dot118021XGrpPrivacy = + WLAN_CIPHER_SUITE_WEP40; + if (param->u.crypt.key_len == 13) { psecuritypriv->dot118021XGrpPrivacy = - WLAN_CIPHER_SUITE_WEP40; - if (param->u.crypt.key_len == 13) { - psecuritypriv-> - dot118021XGrpPrivacy = - WLAN_CIPHER_SUITE_WEP104; - } - } else if (keyparms->cipher == - WLAN_CIPHER_SUITE_TKIP) { - psecuritypriv->dot118021XGrpPrivacy = - WLAN_CIPHER_SUITE_TKIP; + WLAN_CIPHER_SUITE_WEP104; + } + } else if (keyparms->cipher == WLAN_CIPHER_SUITE_TKIP) { + psecuritypriv->dot118021XGrpPrivacy = + WLAN_CIPHER_SUITE_TKIP; - memcpy(psecuritypriv-> - dot118021XGrpKey[param->u.crypt. - idx].skey, - param->u.crypt.key, - (param->u.crypt.key_len > - 16 ? 16 : param->u.crypt. - key_len)); + memcpy(psecuritypriv-> + dot118021XGrpKey[param->u.crypt. + idx].skey, + param->u.crypt.key, + (param->u.crypt.key_len > + 16 ? 16 : param->u.crypt.key_len)); - /* DEBUG_ERR("set key length :param->u" - ".crypt.key_len =%d\n", - param->u.crypt.key_len); */ - /* set mic key */ - memcpy(psecuritypriv-> - dot118021XGrptxmickey[param->u. - crypt.idx]. - skey, ¶m->u.crypt.key[16], - 8); - memcpy(psecuritypriv-> - dot118021XGrprxmickey[param->u. - crypt.idx]. - skey, ¶m->u.crypt.key[24], - 8); + /* DEBUG_ERR("set key length :param->u" + ".crypt.key_len =%d\n", + param->u.crypt.key_len); */ + /* set mic key */ + memcpy(psecuritypriv-> + dot118021XGrptxmickey[param->u. + crypt.idx].skey, + ¶m->u.crypt.key[16], 8); + memcpy(psecuritypriv-> + dot118021XGrprxmickey[param->u. + crypt.idx].skey, + ¶m->u.crypt.key[24], 8); - psecuritypriv->busetkipkey = 1; + psecuritypriv->busetkipkey = 1; - } else if (keyparms->cipher == - WLAN_CIPHER_SUITE_CCMP) { - psecuritypriv->dot118021XGrpPrivacy = - WLAN_CIPHER_SUITE_CCMP; + } else if (keyparms->cipher == WLAN_CIPHER_SUITE_CCMP) { + psecuritypriv->dot118021XGrpPrivacy = + WLAN_CIPHER_SUITE_CCMP; - memcpy(psecuritypriv-> - dot118021XGrpKey[param->u.crypt. - idx].skey, - param->u.crypt.key, - (param->u.crypt.key_len > - 16 ? 16 : param->u.crypt. - key_len)); - } else { - psecuritypriv->dot118021XGrpPrivacy = - 0; - } + memcpy(psecuritypriv-> + dot118021XGrpKey[param->u.crypt. + idx].skey, + param->u.crypt.key, + (param->u.crypt.key_len > + 16 ? 16 : param->u.crypt.key_len)); + } else { + psecuritypriv->dot118021XGrpPrivacy = 0; + } - psecuritypriv->dot118021XGrpKeyid = - param->u.crypt.idx; + psecuritypriv->dot118021XGrpKeyid = param->u.crypt.idx; - psecuritypriv->binstallGrpkey = 1; + psecuritypriv->binstallGrpkey = 1; - psecuritypriv->dot11PrivacyAlgrthm = - psecuritypriv->dot118021XGrpPrivacy; + psecuritypriv->dot11PrivacyAlgrthm = + psecuritypriv->dot118021XGrpPrivacy; - set_group_key(padapter, param->u.crypt.key, - psecuritypriv-> - dot118021XGrpPrivacy, - param->u.crypt.idx); + set_group_key(padapter, param->u.crypt.key, + psecuritypriv->dot118021XGrpPrivacy, + param->u.crypt.idx); - pbcmc_sta = rtw_get_bcmc_stainfo23a(padapter); - if (pbcmc_sta) { - /* rx will use bmc_sta's - dot118021XPrivacy */ - pbcmc_sta->ieee8021x_blocked = false; - pbcmc_sta->dot118021XPrivacy = psecuritypriv->dot118021XGrpPrivacy; - } + pbcmc_sta = rtw_get_bcmc_stainfo23a(padapter); + if (pbcmc_sta) { + /* rx will use bmc_sta's + dot118021XPrivacy */ + pbcmc_sta->ieee8021x_blocked = false; + pbcmc_sta->dot118021XPrivacy = + psecuritypriv->dot118021XGrpPrivacy; } } } @@ -837,7 +821,6 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, exit: return ret; - } #endif -- 2.20.1