staging: r8188eu: use ieee80211 helpers in mgt_dispatcher
authorMartin Kaiser <martin@kaiser.cx>
Wed, 13 Apr 2022 20:07:41 +0000 (22:07 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Apr 2022 07:07:34 +0000 (09:07 +0200)
Use structs and functions from ieee80211.h in mgt_dispatcher to parse
the incoming frame.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220413200742.276806-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_mlme_ext.c

index ba071de4c05cd9aaede25a5217943968ecabcbd8..b6ee6a24930a62462436aa4daca5dd9dc07c2a91 100644 (file)
@@ -396,14 +396,15 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
        struct mlme_handler *ptable;
        struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
        u8 *pframe = precv_frame->rx_data;
-       struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(pframe));
+       struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)precv_frame->rx_data;
+       struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, hdr->addr2);
 
-       if (GetFrameType(pframe) != IEEE80211_FTYPE_MGMT)
+       if (!ieee80211_is_mgmt(hdr->frame_control))
                return;
 
        /* receive the frames that ra(a1) is my address or ra(a1) is bc address. */
-       if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN) &&
-           !is_broadcast_ether_addr(GetAddr1Ptr(pframe)))
+       if (memcmp(hdr->addr1, myid(&padapter->eeprompriv), ETH_ALEN) &&
+           !is_broadcast_ether_addr(hdr->addr1))
                return;
 
        ptable = mlme_sta_tbl;
@@ -415,7 +416,7 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
        ptable += index;
 
        if (psta) {
-               if (GetRetry(pframe)) {
+               if (ieee80211_has_retry(hdr->frame_control)) {
                        if (precv_frame->attrib.seq_num == psta->RxMgmtFrameSeqNum)
                                /* drop the duplicate management frame */
                                return;
@@ -423,7 +424,7 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
                psta->RxMgmtFrameSeqNum = precv_frame->attrib.seq_num;
        }
 
-       if (GetFrameSubType(pframe) == WIFI_AUTH) {
+       if (ieee80211_is_auth(hdr->frame_control)) {
                if (check_fwstate(pmlmepriv, WIFI_AP_STATE))
                        ptable->func = &OnAuth;
                else
@@ -432,8 +433,8 @@ void mgt_dispatcher(struct adapter *padapter, struct recv_frame *precv_frame)
 
        if (ptable->func) {
        /* receive the frames that ra(a1) is my address or ra(a1) is bc address. */
-               if (memcmp(GetAddr1Ptr(pframe), myid(&padapter->eeprompriv), ETH_ALEN) &&
-                   !is_broadcast_ether_addr(GetAddr1Ptr(pframe)))
+               if (memcmp(hdr->addr1, myid(&padapter->eeprompriv), ETH_ALEN) &&
+                   !is_broadcast_ether_addr(hdr->addr1))
                        return;
                ptable->func(padapter, precv_frame);
        }