staging: rtl8188eu: use is_multicast_ether_addr in rtw_recv.c
Use is_multicast_ether_addr instead of custom IS_MCAST in core/rtw_recv.c. In all uses the address array/memory is properly aligned. Signed-off-by: Michael Straube <straube.linux@gmail.com> Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
3bd589eb93
commit
e232f8841e
|
@ -233,7 +233,7 @@ static int recvframe_chkmic(struct adapter *adapter,
|
|||
|
||||
/* calculate mic code */
|
||||
if (stainfo) {
|
||||
if (IS_MCAST(prxattrib->ra)) {
|
||||
if (is_multicast_ether_addr(prxattrib->ra)) {
|
||||
if (!psecuritypriv) {
|
||||
res = _FAIL;
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_,
|
||||
|
@ -321,11 +321,11 @@ static int recvframe_chkmic(struct adapter *adapter,
|
|||
|
||||
/* double check key_index for some timing issue , */
|
||||
/* cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue */
|
||||
if ((IS_MCAST(prxattrib->ra) == true) && (prxattrib->key_index != pmlmeinfo->key_index))
|
||||
if (is_multicast_ether_addr(prxattrib->ra) && prxattrib->key_index != pmlmeinfo->key_index)
|
||||
brpt_micerror = false;
|
||||
|
||||
if ((prxattrib->bdecrypted) && (brpt_micerror)) {
|
||||
rtw_handle_tkip_mic_err(adapter, (u8)IS_MCAST(prxattrib->ra));
|
||||
rtw_handle_tkip_mic_err(adapter, (u8)is_multicast_ether_addr(prxattrib->ra));
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, (" mic error :prxattrib->bdecrypted=%d ", prxattrib->bdecrypted));
|
||||
DBG_88E(" mic error :prxattrib->bdecrypted=%d\n", prxattrib->bdecrypted);
|
||||
} else {
|
||||
|
@ -335,7 +335,7 @@ static int recvframe_chkmic(struct adapter *adapter,
|
|||
res = _FAIL;
|
||||
} else {
|
||||
/* mic checked ok */
|
||||
if ((!psecuritypriv->bcheck_grpkey) && (IS_MCAST(prxattrib->ra))) {
|
||||
if (!psecuritypriv->bcheck_grpkey && is_multicast_ether_addr(prxattrib->ra)) {
|
||||
psecuritypriv->bcheck_grpkey = true;
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("psecuritypriv->bcheck_grpkey = true"));
|
||||
}
|
||||
|
@ -648,7 +648,7 @@ int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame,
|
|||
u8 *mybssid = get_bssid(pmlmepriv);
|
||||
u8 *myhwaddr = myid(&adapter->eeprompriv);
|
||||
u8 *sta_addr = NULL;
|
||||
int bmcast = IS_MCAST(pattrib->dst);
|
||||
bool mcast = is_multicast_ether_addr(pattrib->dst);
|
||||
|
||||
if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == true) ||
|
||||
(check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == true)) {
|
||||
|
@ -659,7 +659,7 @@ int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) {
|
||||
if (memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && !mcast) {
|
||||
ret = _FAIL;
|
||||
goto exit;
|
||||
}
|
||||
|
@ -681,9 +681,9 @@ int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame,
|
|||
}
|
||||
sta_addr = pattrib->bssid;
|
||||
} else if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
|
||||
if (bmcast) {
|
||||
if (mcast) {
|
||||
/* For AP mode, if DA == MCAST, then BSSID should be also MCAST */
|
||||
if (!IS_MCAST(pattrib->bssid)) {
|
||||
if (!is_multicast_ether_addr(pattrib->bssid)) {
|
||||
ret = _FAIL;
|
||||
goto exit;
|
||||
}
|
||||
|
@ -700,7 +700,7 @@ int sta2sta_data_frame(struct adapter *adapter, struct recv_frame *precv_frame,
|
|||
ret = _FAIL;
|
||||
}
|
||||
|
||||
if (bmcast)
|
||||
if (mcast)
|
||||
*psta = rtw_get_bcmc_stainfo(adapter);
|
||||
else
|
||||
*psta = rtw_get_stainfo(pstapriv, sta_addr); /* get ap_info */
|
||||
|
@ -727,7 +727,7 @@ static int ap2sta_data_frame(
|
|||
struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
|
||||
u8 *mybssid = get_bssid(pmlmepriv);
|
||||
u8 *myhwaddr = myid(&adapter->eeprompriv);
|
||||
int bmcast = IS_MCAST(pattrib->dst);
|
||||
bool mcast = is_multicast_ether_addr(pattrib->dst);
|
||||
|
||||
if ((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == true) &&
|
||||
(check_fwstate(pmlmepriv, _FW_LINKED) == true ||
|
||||
|
@ -740,7 +740,7 @@ static int ap2sta_data_frame(
|
|||
}
|
||||
|
||||
/* da should be for me */
|
||||
if ((memcmp(myhwaddr, pattrib->dst, ETH_ALEN)) && (!bmcast)) {
|
||||
if (memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && !mcast) {
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
|
||||
(" %s: compare DA fail; DA=%pM\n", __func__, (pattrib->dst)));
|
||||
ret = _FAIL;
|
||||
|
@ -755,7 +755,7 @@ static int ap2sta_data_frame(
|
|||
(" %s: compare BSSID fail ; BSSID=%pM\n", __func__, (pattrib->bssid)));
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("mybssid=%pM\n", (mybssid)));
|
||||
|
||||
if (!bmcast) {
|
||||
if (!mcast) {
|
||||
DBG_88E("issue_deauth to the nonassociated ap=%pM for the reason(7)\n", (pattrib->bssid));
|
||||
issue_deauth(adapter, pattrib->bssid, WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
|
||||
}
|
||||
|
@ -764,7 +764,7 @@ static int ap2sta_data_frame(
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if (bmcast)
|
||||
if (mcast)
|
||||
*psta = rtw_get_bcmc_stainfo(adapter);
|
||||
else
|
||||
*psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get ap_info */
|
||||
|
@ -789,7 +789,7 @@ static int ap2sta_data_frame(
|
|||
ret = RTW_RX_HANDLED;
|
||||
goto exit;
|
||||
} else {
|
||||
if (!memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && (!bmcast)) {
|
||||
if (!memcmp(myhwaddr, pattrib->dst, ETH_ALEN) && !mcast) {
|
||||
*psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */
|
||||
if (*psta == NULL) {
|
||||
DBG_88E("issue_deauth to the ap =%pM for the reason(7)\n", (pattrib->bssid));
|
||||
|
@ -1129,9 +1129,9 @@ static int validate_recv_data_frame(struct adapter *adapter,
|
|||
|
||||
if (pattrib->privacy) {
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("%s:pattrib->privacy=%x\n", __func__, pattrib->privacy));
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n ^^^^^^^^^^^IS_MCAST(pattrib->ra(0x%02x))=%d^^^^^^^^^^^^^^^6\n", pattrib->ra[0], IS_MCAST(pattrib->ra)));
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n ^^^^^^^^^^^is_multicast_ether_addr(pattrib->ra(0x%02x))=%d^^^^^^^^^^^^^^^6\n", pattrib->ra[0], is_multicast_ether_addr(pattrib->ra)));
|
||||
|
||||
GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, IS_MCAST(pattrib->ra));
|
||||
GET_ENCRY_ALGO(psecuritypriv, psta, pattrib->encrypt, is_multicast_ether_addr(pattrib->ra));
|
||||
|
||||
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("\n pattrib->encrypt=%d\n", pattrib->encrypt));
|
||||
|
||||
|
@ -1971,7 +1971,8 @@ static int recv_func(struct adapter *padapter, struct recv_frame *rframe)
|
|||
if (ret == _SUCCESS) {
|
||||
/* check if need to enqueue into uc_swdec_pending_queue*/
|
||||
if (check_fwstate(mlmepriv, WIFI_STATION_STATE) &&
|
||||
!IS_MCAST(prxattrib->ra) && prxattrib->encrypt > 0 &&
|
||||
!is_multicast_ether_addr(prxattrib->ra) &&
|
||||
prxattrib->encrypt > 0 &&
|
||||
prxattrib->bdecrypted == 0 &&
|
||||
!is_wep_enc(psecuritypriv->dot11PrivacyAlgrthm) &&
|
||||
!psecuritypriv->busetkipkey) {
|
||||
|
|
Loading…
Reference in New Issue