staging: r8188eu: use standard mechanisms for qos data frames
authorMartin Kaiser <martin@kaiser.cx>
Sun, 27 Mar 2022 18:09:40 +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 qos data frames and
to mark a frame as qos data.

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

index 341aca28b97fc612416005821cb27d89e6e6b7e2..bb67abd3ed99a0d0ee7b8bdd1088f93091bcff64 100644 (file)
@@ -749,6 +749,7 @@ static int sta2ap_data_frame(struct adapter *adapter,
        struct  sta_priv *pstapriv = &adapter->stapriv;
        struct  mlme_priv *pmlmepriv = &adapter->mlmepriv;
        u8 *ptr = precv_frame->rx_data;
+       __le16 fc = *(__le16 *)ptr;
        unsigned char *mybssid  = get_bssid(pmlmepriv);
        int ret = _SUCCESS;
 
@@ -769,9 +770,8 @@ static int sta2ap_data_frame(struct adapter *adapter,
 
                process_pwrbit_data(adapter, precv_frame);
 
-               if ((GetFrameSubType(ptr) & WIFI_QOS_DATA_TYPE) == WIFI_QOS_DATA_TYPE) {
+               if (ieee80211_is_data_qos(fc))
                        process_wmmps_data(adapter, precv_frame);
-               }
 
                if (GetFrameSubType(ptr) & BIT(6)) {
                        /* No data, will not indicate to upper layer, temporily count it here */
index 781dc80ff9edabf6fc61f9eca7937e4d868f2480..aede8ef8b098a2ef9a6bffeaedc6677196e8c11d 100644 (file)
@@ -399,7 +399,7 @@ static void set_qos(struct pkt_file *ppktfile, struct pkt_attrib *pattrib)
 
        pattrib->priority = user_prio;
        pattrib->hdrlen = WLAN_HDR_A3_QOS_LEN;
-       pattrib->subtype = WIFI_QOS_DATA_TYPE;
+       pattrib->subtype = IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA;
 }
 
 static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, struct pkt_attrib *pattrib)
index c71334f3986a3bb51ee240a4bc45e7f76f11ac48..2e42b4b48c25c219e064f6a93dd4f46b90ca2a35 100644 (file)
 #define WLAN_HDR_A3_QOS_LEN    26
 #define WLAN_SSID_MAXLEN       32
 
-enum WIFI_FRAME_TYPE {
-       WIFI_QOS_DATA_TYPE      = (BIT(7)|BIT(3)),      /*  QoS Data */
-};
-
 enum WIFI_FRAME_SUBTYPE {
        /*  below is for mgt frame */
        WIFI_ASSOCREQ       = (0 | IEEE80211_FTYPE_MGMT),
@@ -48,7 +44,7 @@ enum WIFI_FRAME_SUBTYPE {
        WIFI_CF_ACK         = (BIT(6) | BIT(4) | IEEE80211_FTYPE_DATA),
        WIFI_CF_POLL        = (BIT(6) | BIT(5) | IEEE80211_FTYPE_DATA),
        WIFI_CF_ACKPOLL     = (BIT(6) | BIT(5) | BIT(4) | IEEE80211_FTYPE_DATA),
-       WIFI_QOS_DATA_NULL      = (BIT(6) | WIFI_QOS_DATA_TYPE),
+       WIFI_QOS_DATA_NULL      = (BIT(6) | IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA),
 };
 
 enum WIFI_REASON_CODE  {