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.li...@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpen...@oracle.com>
---
 drivers/staging/rtl8188eu/core/rtw_recv.c | 35 ++++++++++++-----------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_recv.c 
b/drivers/staging/rtl8188eu/core/rtw_recv.c
index 17b4b9257b49..ab9638d618a9 100644
--- a/drivers/staging/rtl8188eu/core/rtw_recv.c
+++ b/drivers/staging/rtl8188eu/core/rtw_recv.c
@@ -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) {
-- 
2.18.0

Reply via email to