From: Jes Sorensen Date: Wed, 21 May 2014 07:37:29 +0000 (+0200) Subject: staging: rtl8723au: Fix up some random bit-flag handling X-Git-Tag: v3.16-rc1~30^2~36^2~641 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=9216c517fb0192d1828169d8af2bac59ee8e3173;p=uclinux-h8%2Flinux.git staging: rtl8723au: Fix up some random bit-flag handling Randomly mixing true/false/_FAIL/0/1 is a recipe for disaster Signed-off-by: Jes Sorensen Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/rtl8723au/core/rtw_cmd.c b/drivers/staging/rtl8723au/core/rtw_cmd.c index b28afb1b8380..5abe936e479e 100644 --- a/drivers/staging/rtl8723au/core/rtw_cmd.c +++ b/drivers/staging/rtl8723au/core/rtw_cmd.c @@ -755,7 +755,7 @@ int rtw_setstakey_cmd23a(struct rtw_adapter *padapter, u8 *psta, u8 unicast_key) } /* jeff: set this becasue at least sw key is ready */ - padapter->securitypriv.busetkipkey = true; + padapter->securitypriv.busetkipkey = 1; res = rtw_enqueue_cmd23a(pcmdpriv, ph2c); diff --git a/drivers/staging/rtl8723au/core/rtw_mlme.c b/drivers/staging/rtl8723au/core/rtw_mlme.c index b912d09d6550..8c6b0947ee92 100644 --- a/drivers/staging/rtl8723au/core/rtw_mlme.c +++ b/drivers/staging/rtl8723au/core/rtw_mlme.c @@ -1027,9 +1027,8 @@ rtw_joinbss_update_stainfo(struct rtw_adapter *padapter, /* security related */ if (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X) { - padapter->securitypriv.binstallGrpkey = false; - padapter->securitypriv.busetkipkey = false; - padapter->securitypriv.bgrpkey_handshake = false; + padapter->securitypriv.binstallGrpkey = 0; + padapter->securitypriv.busetkipkey = 0; psta->ieee8021x_blocked = true; psta->dot118021XPrivacy = diff --git a/drivers/staging/rtl8723au/core/rtw_pwrctrl.c b/drivers/staging/rtl8723au/core/rtw_pwrctrl.c index 96337a87b1d8..707b5ccd951b 100644 --- a/drivers/staging/rtl8723au/core/rtw_pwrctrl.c +++ b/drivers/staging/rtl8723au/core/rtw_pwrctrl.c @@ -306,7 +306,7 @@ static u8 PS_RDY_CHECK(struct rtw_adapter * padapter) if (pwrpriv->bInSuspend) return false; if (padapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X && - padapter->securitypriv.binstallGrpkey == false) { + !padapter->securitypriv.binstallGrpkey) { DBG_8723A("Group handshake still in progress !!!\n"); return false; } diff --git a/drivers/staging/rtl8723au/core/rtw_recv.c b/drivers/staging/rtl8723au/core/rtw_recv.c index eda495a1d5d8..84e6a1875cf4 100644 --- a/drivers/staging/rtl8723au/core/rtw_recv.c +++ b/drivers/staging/rtl8723au/core/rtw_recv.c @@ -313,7 +313,7 @@ int recvframe_chkmic(struct rtw_adapter *adapter, RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n recvframe_chkmic: bcmc key\n")); - if (psecuritypriv->binstallGrpkey == false) { + if (!psecuritypriv->binstallGrpkey) { res = _FAIL; RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, @@ -442,9 +442,9 @@ int recvframe_chkmic(struct rtw_adapter *adapter, res = _FAIL; } else { /* mic checked ok */ - if ((psecuritypriv->bcheck_grpkey == false) && - (is_multicast_ether_addr(prxattrib->ra))) { - psecuritypriv->bcheck_grpkey = true; + if (!psecuritypriv->bcheck_grpkey && + is_multicast_ether_addr(prxattrib->ra)) { + psecuritypriv->bcheck_grpkey = 1; RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("psecuritypriv->bcheck_grp" @@ -507,7 +507,7 @@ struct recv_frame *decryptor(struct rtw_adapter *padapter, } if ((prxattrib->encrypt > 0) && ((prxattrib->bdecrypted == 0))) { - psecuritypriv->hw_decrypted = false; + psecuritypriv->hw_decrypted = 0; switch (prxattrib->encrypt) { case _WEP40_: case _WEP104_: @@ -525,7 +525,7 @@ struct recv_frame *decryptor(struct rtw_adapter *padapter, } else if (prxattrib->bdecrypted == 1 && prxattrib->encrypt > 0 && (psecuritypriv->busetkipkey == 1 || prxattrib->encrypt != _TKIP_)) { - psecuritypriv->hw_decrypted = true; + psecuritypriv->hw_decrypted = 1; } if (res == _FAIL) { diff --git a/drivers/staging/rtl8723au/core/rtw_security.c b/drivers/staging/rtl8723au/core/rtw_security.c index 77709fea856c..96347e73b4f6 100644 --- a/drivers/staging/rtl8723au/core/rtw_security.c +++ b/drivers/staging/rtl8723au/core/rtw_security.c @@ -744,7 +744,7 @@ int rtw_tkip_decrypt23a(struct rtw_adapter *padapter, if (stainfo!= NULL) { if (is_multicast_ether_addr(prxattrib->ra)) { - if (psecuritypriv->binstallGrpkey == false) { + if (psecuritypriv->binstallGrpkey == 0) { res = _FAIL; DBG_8723A("%s:rx bc/mc packets, but didn't install group key!!!!!!!!!!\n", __func__); goto exit; @@ -1645,7 +1645,7 @@ void rtw_use_tkipkey_handler23a(void *FunctionContext) struct rtw_adapter *padapter = (struct rtw_adapter *)FunctionContext; RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("^^^rtw_use_tkipkey_handler23a ^^^\n")); - padapter->securitypriv.busetkipkey = true; + padapter->securitypriv.busetkipkey = 1; RT_TRACE(_module_rtl871x_security_c_, _drv_err_, ("^^^rtw_use_tkipkey_handler23a padapter->securitypriv.busetkipkey =%d^^^\n", padapter->securitypriv.busetkipkey)); diff --git a/drivers/staging/rtl8723au/core/rtw_xmit.c b/drivers/staging/rtl8723au/core/rtw_xmit.c index 65e7de8de916..eeaaa8fc7a4c 100644 --- a/drivers/staging/rtl8723au/core/rtw_xmit.c +++ b/drivers/staging/rtl8723au/core/rtw_xmit.c @@ -604,10 +604,10 @@ static int update_attrib(struct rtw_adapter *padapter, pattrib->iv_len = 8; pattrib->icv_len = 4; - if (padapter->securitypriv.busetkipkey == _FAIL) { + if (!padapter->securitypriv.busetkipkey) { RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("\npadapter->securitypriv.busetkip" - "key(%d) == _FAIL drop packet\n", + "key(%d) == false drop packet\n", padapter->securitypriv.busetkipkey)); res = _FAIL; goto exit; @@ -630,7 +630,7 @@ static int update_attrib(struct rtw_adapter *padapter, RT_TRACE(_module_rtl871x_xmit_c_, _drv_info_, ("update_attrib: encrypt =%d\n", pattrib->encrypt)); - if (pattrib->encrypt && psecuritypriv->hw_decrypted == false) { + if (pattrib->encrypt && !psecuritypriv->hw_decrypted) { pattrib->bswenc = true; RT_TRACE(_module_rtl871x_xmit_c_, _drv_err_, ("update_attrib: encrypt =%d bswenc = true\n", diff --git a/drivers/staging/rtl8723au/include/rtw_security.h b/drivers/staging/rtl8723au/include/rtw_security.h index e9e850616359..d117a2053396 100644 --- a/drivers/staging/rtl8723au/include/rtw_security.h +++ b/drivers/staging/rtl8723au/include/rtw_security.h @@ -139,11 +139,10 @@ struct security_priv { u8 wps_ie[MAX_WPS_IE_LEN];/* added in assoc req */ int wps_ie_len; - u8 binstallGrpkey; - u8 busetkipkey; - u8 bcheck_grpkey; - u8 bgrpkey_handshake; - s32 hw_decrypted; + unsigned int binstallGrpkey:1; + unsigned int busetkipkey:1; + unsigned int bcheck_grpkey:1; + unsigned int hw_decrypted:1; u32 ndisauthtype; /* enum ndis_802_11_auth_mode */ u32 ndisencryptstatus; /* NDIS_802_11_ENCRYPTION_STATUS */ struct wlan_bssid_ex sec_bss; /* for joinbss (h2c buffer) usage */ diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c index aac1d418d9dd..35ed47a79d27 100644 --- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c @@ -689,7 +689,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, idx].skey, ¶m->u.crypt.key[24], 8); - psecuritypriv->busetkipkey = true; + psecuritypriv->busetkipkey = 1; } else if (strcmp(param->u.crypt.alg, "CCMP") == 0) { DBG_8723A("%s, set group_key, CCMP\n", @@ -712,7 +712,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, psecuritypriv->dot118021XGrpKeyid = param->u.crypt.idx; - psecuritypriv->binstallGrpkey = true; + psecuritypriv->binstallGrpkey = 1; psecuritypriv->dot11PrivacyAlgrthm = psecuritypriv->dot118021XGrpPrivacy; @@ -767,7 +767,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, memcpy(psta->dot11tkiprxmickey.skey, ¶m->u.crypt.key[24], 8); - psecuritypriv->busetkipkey = true; + psecuritypriv->busetkipkey = 1; } else if (!strcmp(param->u.crypt.alg, "CCMP")) { @@ -831,7 +831,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, skey, ¶m->u.crypt.key[24], 8); - psecuritypriv->busetkipkey = true; + psecuritypriv->busetkipkey = 1; } else if (!strcmp(param->u.crypt.alg, "CCMP")) { psecuritypriv->dot118021XGrpPrivacy = @@ -852,7 +852,7 @@ static int rtw_cfg80211_ap_set_encryption(struct net_device *dev, psecuritypriv->dot118021XGrpKeyid = param->u.crypt.idx; - psecuritypriv->binstallGrpkey = true; + psecuritypriv->binstallGrpkey = 1; psecuritypriv->dot11PrivacyAlgrthm = psecuritypriv->dot118021XGrpPrivacy; @@ -1003,7 +1003,7 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, 8); padapter->securitypriv. - busetkipkey = false; + busetkipkey = 0; } DBG_8723A(" ~~~~set sta key:unicastkey\n"); @@ -1029,7 +1029,7 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, skey, ¶m->u.crypt.key[24], 8); padapter->securitypriv.binstallGrpkey = - true; + 1; /* DEBUG_ERR((" param->u.crypt.key_len" "=%d\n", param->u.crypt.key_len)); */ DBG_8723A diff --git a/drivers/staging/rtl8723au/os_dep/os_intfs.c b/drivers/staging/rtl8723au/os_dep/os_intfs.c index 5be8dd9e1fea..d6d0e9a1c936 100644 --- a/drivers/staging/rtl8723au/os_dep/os_intfs.c +++ b/drivers/staging/rtl8723au/os_dep/os_intfs.c @@ -401,7 +401,7 @@ static int rtw_init_default_value(struct rtw_adapter *padapter) pmlmepriv->htpriv.ampdu_enable = false;/* set to disabled */ /* security_priv */ - psecuritypriv->binstallGrpkey = _FAIL; + psecuritypriv->binstallGrpkey = 0; /* open system */ psecuritypriv->dot11AuthAlgrthm = dot11AuthAlgrthm_Open;