staging: r8188eu: use standard mechanisms for control frames
authorMartin Kaiser <martin@kaiser.cx>
Sun, 27 Mar 2022 18:09:38 +0000 (20:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Apr 2022 05:33:46 +0000 (07:33 +0200)
Use defines and macros from ieee80211.h to check for control frames and
to define control frame subtypes.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220327180944.712545-4-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_recv.c
drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c
drivers/staging/r8188eu/include/wifi.h

index 5af715a08430c75d85bfc00979cf50de7f93a89a..7735fbe6fa72dba92169783fdd0df44e9fcaa4df 100644 (file)
@@ -801,9 +801,10 @@ static int validate_recv_ctrl_frame(struct adapter *padapter,
        struct rx_pkt_attrib *pattrib = &precv_frame->attrib;
        struct sta_priv *pstapriv = &padapter->stapriv;
        u8 *pframe = precv_frame->rx_data;
+       __le16 fc = *(__le16 *)pframe;
        /* uint len = precv_frame->len; */
 
-       if (GetFrameType(pframe) != WIFI_CTRL_TYPE)
+       if (!ieee80211_is_ctl(fc))
                return _FAIL;
 
        /* receive the frames that ra(a1) is my address */
index 9bf7a9248026bdf0f688007ba110642704e70ec4..7e50a42b6f75015f516411be8b72f45f281e9df3 100644 (file)
@@ -113,12 +113,13 @@ void update_recvframe_phyinfo_88e(struct recv_frame *precvframe, struct phy_stat
        struct hal_data_8188e *pHalData = &padapter->haldata;
        struct phy_info *pPHYInfo  = &pattrib->phy_info;
        u8 *wlanhdr = precvframe->rx_data;
+       __le16 fc = *(__le16 *)wlanhdr;
        struct odm_per_pkt_info pkt_info;
        u8 *sa = NULL;
        struct sta_priv *pstapriv;
        struct sta_info *psta;
 
-       pkt_info.bPacketMatchBSSID = ((!IsFrameTypeCtrl(wlanhdr)) &&
+       pkt_info.bPacketMatchBSSID = ((!ieee80211_is_ctl(fc)) &&
                !pattrib->icv_err && !pattrib->crc_err &&
                !memcmp(get_hdr_bssid(wlanhdr),
                 get_bssid(&padapter->mlmepriv), ETH_ALEN));
index 2995533512463088b0a8ce2310fb8dff9d023082..47b73fde2006ac9f8c475631179168c1b6dde5d9 100644 (file)
@@ -13,7 +13,6 @@
 #define WLAN_SSID_MAXLEN       32
 
 enum WIFI_FRAME_TYPE {
-       WIFI_CTRL_TYPE =        (BIT(2)),
        WIFI_DATA_TYPE =        (BIT(3)),
        WIFI_QOS_DATA_TYPE      = (BIT(7)|BIT(3)),      /*  QoS Data */
 };
@@ -34,13 +33,12 @@ enum WIFI_FRAME_SUBTYPE {
        WIFI_ACTION         = (BIT(7) | BIT(6) | BIT(4) | IEEE80211_FTYPE_MGMT),
 
        /*  below is for control frame */
-       WIFI_PSPOLL         = (BIT(7) | BIT(5) | WIFI_CTRL_TYPE),
-       WIFI_RTS            = (BIT(7) | BIT(5) | BIT(4) | WIFI_CTRL_TYPE),
-       WIFI_CTS            = (BIT(7) | BIT(6) | WIFI_CTRL_TYPE),
-       WIFI_ACK            = (BIT(7) | BIT(6) | BIT(4) | WIFI_CTRL_TYPE),
-       WIFI_CFEND          = (BIT(7) | BIT(6) | BIT(5) | WIFI_CTRL_TYPE),
-       WIFI_CFEND_CFACK    = (BIT(7) | BIT(6) | BIT(5) | BIT(4) |
-       WIFI_CTRL_TYPE),
+       WIFI_PSPOLL         = (BIT(7) | BIT(5) | IEEE80211_FTYPE_CTL),
+       WIFI_RTS            = (BIT(7) | BIT(5) | BIT(4) | IEEE80211_FTYPE_CTL),
+       WIFI_CTS            = (BIT(7) | BIT(6) | IEEE80211_FTYPE_CTL),
+       WIFI_ACK            = (BIT(7) | BIT(6) | BIT(4) | IEEE80211_FTYPE_CTL),
+       WIFI_CFEND          = (BIT(7) | BIT(6) | BIT(5) | IEEE80211_FTYPE_CTL),
+       WIFI_CFEND_CFACK    = (BIT(7) | BIT(6) | BIT(5) | BIT(4) | IEEE80211_FTYPE_CTL),
 
        /*  below is for data frame */
        WIFI_DATA           = (0 | WIFI_DATA_TYPE),
@@ -340,13 +338,6 @@ static inline unsigned char *get_hdr_bssid(unsigned char *pframe)
        return sa;
 }
 
-static inline bool IsFrameTypeCtrl(unsigned char *pframe)
-{
-       if (WIFI_CTRL_TYPE == GetFrameType(pframe))
-               return true;
-       else
-               return false;
-}
 /*-----------------------------------------------------------------------------
                        Below is for the security related definition
 ------------------------------------------------------------------------------*/