From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E149C433F5 for ; Sun, 27 Feb 2022 16:42:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231184AbiB0Qmu (ORCPT ); Sun, 27 Feb 2022 11:42:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229471AbiB0Qmt (ORCPT ); Sun, 27 Feb 2022 11:42:49 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C11F6D192 for ; Sun, 27 Feb 2022 08:42:12 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMca-0005Z9-36; Sun, 27 Feb 2022 17:42:08 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 1/8] staging: r8188eu: use ieee80211 define for management frame type Date: Sun, 27 Feb 2022 17:41:40 +0100 Message-Id: <20220227164147.1168847-2-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Replace the driver-internal define for management frame type with IEEE80211_FTYPE_MGMT. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 3 ++- drivers/staging/r8188eu/core/rtw_recv.c | 2 +- drivers/staging/r8188eu/include/wifi.h | 25 ++++++++++----------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/= r8188eu/core/rtw_mlme_ext.c index 0b77ddde6ce2..f49641abc8b8 100644 --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -3,6 +3,7 @@ =20 #define _RTW_MLME_EXT_C_ =20 +#include #include "../include/osdep_service.h" #include "../include/drv_types.h" #include "../include/wifi.h" @@ -414,7 +415,7 @@ void mgt_dispatcher(struct adapter *padapter, struct re= cv_frame *precv_frame) u8 *pframe =3D precv_frame->rx_data; struct sta_info *psta =3D rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr= (pframe)); =20 - if (GetFrameType(pframe) !=3D WIFI_MGT_TYPE) + if (GetFrameType(pframe) !=3D IEEE80211_FTYPE_MGMT) return; =20 /* receive the frames that ra(a1) is my address or ra(a1) is bc address. = */ diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 6dacb2687034..1133239f29bc 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1094,7 +1094,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv /* Dump rx packets */ GetHalDefVar8188EUsb(adapter, HAL_DEF_DBG_DUMP_RXPKT, &bDumpRxPkt); switch (type) { - case WIFI_MGT_TYPE: /* mgnt */ + case IEEE80211_FTYPE_MGMT: validate_recv_mgnt_frame(adapter, precv_frame); retval =3D _FAIL; /* only data frame return _SUCCESS */ break; diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index e7083d721dae..5b383c2e9880 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -18,7 +18,6 @@ #define WLAN_SSID_MAXLEN 32 =20 enum WIFI_FRAME_TYPE { - WIFI_MGT_TYPE =3D (0), WIFI_CTRL_TYPE =3D (BIT(2)), WIFI_DATA_TYPE =3D (BIT(3)), WIFI_QOS_DATA_TYPE =3D (BIT(7)|BIT(3)), /* QoS Data */ @@ -26,18 +25,18 @@ enum WIFI_FRAME_TYPE { =20 enum WIFI_FRAME_SUBTYPE { /* below is for mgt frame */ - WIFI_ASSOCREQ =3D (0 | WIFI_MGT_TYPE), - WIFI_ASSOCRSP =3D (BIT(4) | WIFI_MGT_TYPE), - WIFI_REASSOCREQ =3D (BIT(5) | WIFI_MGT_TYPE), - WIFI_REASSOCRSP =3D (BIT(5) | BIT(4) | WIFI_MGT_TYPE), - WIFI_PROBEREQ =3D (BIT(6) | WIFI_MGT_TYPE), - WIFI_PROBERSP =3D (BIT(6) | BIT(4) | WIFI_MGT_TYPE), - WIFI_BEACON =3D (BIT(7) | WIFI_MGT_TYPE), - WIFI_ATIM =3D (BIT(7) | BIT(4) | WIFI_MGT_TYPE), - WIFI_DISASSOC =3D (BIT(7) | BIT(5) | WIFI_MGT_TYPE), - WIFI_AUTH =3D (BIT(7) | BIT(5) | BIT(4) | WIFI_MGT_TYPE), - WIFI_DEAUTH =3D (BIT(7) | BIT(6) | WIFI_MGT_TYPE), - WIFI_ACTION =3D (BIT(7) | BIT(6) | BIT(4) | WIFI_MGT_TYPE), + WIFI_ASSOCREQ =3D (0 | IEEE80211_FTYPE_MGMT), + WIFI_ASSOCRSP =3D (BIT(4) | IEEE80211_FTYPE_MGMT), + WIFI_REASSOCREQ =3D (BIT(5) | IEEE80211_FTYPE_MGMT), + WIFI_REASSOCRSP =3D (BIT(5) | BIT(4) | IEEE80211_FTYPE_MGMT), + WIFI_PROBEREQ =3D (BIT(6) | IEEE80211_FTYPE_MGMT), + WIFI_PROBERSP =3D (BIT(6) | BIT(4) | IEEE80211_FTYPE_MGMT), + WIFI_BEACON =3D (BIT(7) | IEEE80211_FTYPE_MGMT), + WIFI_ATIM =3D (BIT(7) | BIT(4) | IEEE80211_FTYPE_MGMT), + WIFI_DISASSOC =3D (BIT(7) | BIT(5) | IEEE80211_FTYPE_MGMT), + WIFI_AUTH =3D (BIT(7) | BIT(5) | BIT(4) | IEEE80211_FTYPE_MGMT), + WIFI_DEAUTH =3D (BIT(7) | BIT(6) | IEEE80211_FTYPE_MGMT), + WIFI_ACTION =3D (BIT(7) | BIT(6) | BIT(4) | IEEE80211_FTYPE_MGMT), =20 /* below is for control frame */ WIFI_PSPOLL =3D (BIT(7) | BIT(5) | WIFI_CTRL_TYPE), --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 711D5C433F5 for ; Sun, 27 Feb 2022 16:42:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231776AbiB0Qmy (ORCPT ); Sun, 27 Feb 2022 11:42:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230447AbiB0Qmt (ORCPT ); Sun, 27 Feb 2022 11:42:49 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C873D6D19D for ; Sun, 27 Feb 2022 08:42:12 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMcb-0005Z9-0A; Sun, 27 Feb 2022 17:42:09 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 2/8] staging: r8188eu: use ieee80211 helpers to check the frame type Date: Sun, 27 Feb 2022 17:41:41 +0100 Message-Id: <20220227164147.1168847-3-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the ieee80211_is_... helper functions to check the frame type in the validate_recv_frame function. Add a temporary variable for the 16-bit frame control field. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 1133239f29bc..e95c9a47dcac 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -3,6 +3,7 @@ =20 #define _RTW_RECV_C_ =20 +#include #include "../include/osdep_service.h" #include "../include/drv_types.h" #include "../include/recv_osdep.h" @@ -1056,12 +1057,12 @@ static int validate_recv_frame(struct adapter *adap= ter, struct recv_frame *precv =20 /* then call check if rx seq/frag. duplicated. */ =20 - u8 type; u8 subtype; int retval =3D _SUCCESS; u8 bDumpRxPkt; struct rx_pkt_attrib *pattrib =3D &precv_frame->attrib; u8 *ptr =3D precv_frame->rx_data; + __le16 fc =3D *(__le16 *)ptr; u8 ver =3D (unsigned char)(*ptr) & 0x3; struct mlme_ext_priv *pmlmeext =3D &adapter->mlmeextpriv; =20 @@ -1077,7 +1078,6 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv goto exit; } =20 - type =3D GetFrameType(ptr); subtype =3D GetFrameSubType(ptr); /* bit(7)~bit(2) */ =20 pattrib->to_fr_ds =3D get_tofr_ds(ptr); @@ -1093,16 +1093,14 @@ static int validate_recv_frame(struct adapter *adap= ter, struct recv_frame *precv =20 /* Dump rx packets */ GetHalDefVar8188EUsb(adapter, HAL_DEF_DBG_DUMP_RXPKT, &bDumpRxPkt); - switch (type) { - case IEEE80211_FTYPE_MGMT: + + if (ieee80211_is_mgmt(fc)) { validate_recv_mgnt_frame(adapter, precv_frame); retval =3D _FAIL; /* only data frame return _SUCCESS */ - break; - case WIFI_CTRL_TYPE: /* ctrl */ + } else if (ieee80211_is_ctl(fc)) { validate_recv_ctrl_frame(adapter, precv_frame); retval =3D _FAIL; /* only data frame return _SUCCESS */ - break; - case WIFI_DATA_TYPE: /* data */ + } else if (ieee80211_is_data(fc)) { rtw_led_control(adapter, LED_CTL_RX); pattrib->qos =3D (subtype & BIT(7)) ? 1 : 0; retval =3D validate_recv_data_frame(adapter, precv_frame); @@ -1110,11 +1108,8 @@ static int validate_recv_frame(struct adapter *adapt= er, struct recv_frame *precv struct recv_priv *precvpriv =3D &adapter->recvpriv; precvpriv->rx_drop++; } - break; - default: + } else retval =3D _FAIL; - break; - } =20 exit: =20 --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99CD3C433F5 for ; Sun, 27 Feb 2022 16:42:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231803AbiB0Qm5 (ORCPT ); Sun, 27 Feb 2022 11:42:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231148AbiB0Qmu (ORCPT ); Sun, 27 Feb 2022 11:42:50 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9D4740E7B for ; Sun, 27 Feb 2022 08:42:13 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMcb-0005Z9-Py; Sun, 27 Feb 2022 17:42:09 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 3/8] staging: r8188eu: refactor validate_recv_frame's error handling Date: Sun, 27 Feb 2022 17:41:42 +0100 Message-Id: <20220227164147.1168847-4-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Refactor the error handling of validate_recv_frame. It's simpler to default to _FAIL. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index e95c9a47dcac..364bf78c36e9 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1058,7 +1058,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv /* then call check if rx seq/frag. duplicated. */ =20 u8 subtype; - int retval =3D _SUCCESS; + int retval =3D _FAIL; u8 bDumpRxPkt; struct rx_pkt_attrib *pattrib =3D &precv_frame->attrib; u8 *ptr =3D precv_frame->rx_data; @@ -1073,10 +1073,8 @@ static int validate_recv_frame(struct adapter *adapt= er, struct recv_frame *precv } =20 /* add version chk */ - if (ver !=3D 0) { - retval =3D _FAIL; - goto exit; - } + if (ver !=3D 0) + return _FAIL; =20 subtype =3D GetFrameSubType(ptr); /* bit(7)~bit(2) */ =20 @@ -1094,13 +1092,12 @@ static int validate_recv_frame(struct adapter *adap= ter, struct recv_frame *precv /* Dump rx packets */ GetHalDefVar8188EUsb(adapter, HAL_DEF_DBG_DUMP_RXPKT, &bDumpRxPkt); =20 - if (ieee80211_is_mgmt(fc)) { + /* We return _SUCCESS only for data frames. */ + if (ieee80211_is_mgmt(fc)) validate_recv_mgnt_frame(adapter, precv_frame); - retval =3D _FAIL; /* only data frame return _SUCCESS */ - } else if (ieee80211_is_ctl(fc)) { + else if (ieee80211_is_ctl(fc)) validate_recv_ctrl_frame(adapter, precv_frame); - retval =3D _FAIL; /* only data frame return _SUCCESS */ - } else if (ieee80211_is_data(fc)) { + else if (ieee80211_is_data(fc)) { rtw_led_control(adapter, LED_CTL_RX); pattrib->qos =3D (subtype & BIT(7)) ? 1 : 0; retval =3D validate_recv_data_frame(adapter, precv_frame); @@ -1108,10 +1105,7 @@ static int validate_recv_frame(struct adapter *adapt= er, struct recv_frame *precv struct recv_priv *precvpriv =3D &adapter->recvpriv; precvpriv->rx_drop++; } - } else - retval =3D _FAIL; - -exit: + } =20 return retval; } --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39BEFC433EF for ; Sun, 27 Feb 2022 16:42:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231793AbiB0Qm7 (ORCPT ); Sun, 27 Feb 2022 11:42:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231338AbiB0Qmv (ORCPT ); Sun, 27 Feb 2022 11:42:51 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 88CB26D192 for ; Sun, 27 Feb 2022 08:42:14 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMcc-0005Z9-IH; Sun, 27 Feb 2022 17:42:10 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 4/8] staging: r8188eu: use ieee80211 helper for qos bit Date: Sun, 27 Feb 2022 17:41:43 +0100 Message-Id: <20220227164147.1168847-5-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the ieee80211_is_data_qos helper function to read the qos bit. This helper function returns a bool. Change the qos field in struct rx_pkt_attrib from u8 to bool and fix up the other places where it is used. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 9 +++------ drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 2 +- drivers/staging/r8188eu/include/rtw_recv.h | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 364bf78c36e9..3a92d261f7c3 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1012,7 +1012,7 @@ static int validate_recv_data_frame(struct adapter *a= dapter, pattrib->amsdu =3D 0; pattrib->ack_policy =3D 0; /* parsing QC field */ - if (pattrib->qos =3D=3D 1) { + if (pattrib->qos) { pattrib->priority =3D GetPriority((ptr + 24)); pattrib->ack_policy =3D GetAckpolicy((ptr + 24)); pattrib->amsdu =3D GetAMsdu((ptr + 24)); @@ -1057,7 +1057,6 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv =20 /* then call check if rx seq/frag. duplicated. */ =20 - u8 subtype; int retval =3D _FAIL; u8 bDumpRxPkt; struct rx_pkt_attrib *pattrib =3D &precv_frame->attrib; @@ -1076,8 +1075,6 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv if (ver !=3D 0) return _FAIL; =20 - subtype =3D GetFrameSubType(ptr); /* bit(7)~bit(2) */ - pattrib->to_fr_ds =3D get_tofr_ds(ptr); =20 pattrib->frag_num =3D GetFragNum(ptr); @@ -1099,7 +1096,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv validate_recv_ctrl_frame(adapter, precv_frame); else if (ieee80211_is_data(fc)) { rtw_led_control(adapter, LED_CTL_RX); - pattrib->qos =3D (subtype & BIT(7)) ? 1 : 0; + pattrib->qos =3D ieee80211_is_data_qos(fc); retval =3D validate_recv_data_frame(adapter, precv_frame); if (retval =3D=3D _FAIL) { struct recv_priv *precvpriv =3D &adapter->recvpriv; @@ -1599,7 +1596,7 @@ static int recv_indicatepkt_reorder(struct adapter *p= adapter, struct recv_frame /* s1. */ wlanhdr_to_ethhdr(prframe); =20 - if (pattrib->qos !=3D 1) { + if (!pattrib->qos) { if (!padapter->bDriverStopped && !padapter->bSurpriseRemoved) { rtw_recv_indicatepkt(padapter, prframe); diff --git a/drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c b/drivers/stagin= g/r8188eu/hal/rtl8188e_rxdesc.c index bf93ff3af140..101091342e4e 100644 --- a/drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c +++ b/drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c @@ -84,7 +84,7 @@ void update_recvframe_attrib_88e(struct recv_frame *precv= frame, struct recv_stat pattrib->bdecrypted =3D (le32_to_cpu(report.rxdw0) & BIT(27)) ? 0 : 1;/*= u8)(prxreport->swdec ? 0 : 1); */ pattrib->encrypt =3D (u8)((le32_to_cpu(report.rxdw0) >> 20) & 0x7);/* u8= )prxreport->security; */ =20 - pattrib->qos =3D (u8)((le32_to_cpu(report.rxdw0) >> 23) & 0x1);/* u8)prx= report->qos; */ + pattrib->qos =3D (le32_to_cpu(report.rxdw0) >> 23) & 0x1;/* prxreport->q= os; */ pattrib->priority =3D (u8)((le32_to_cpu(report.rxdw1) >> 8) & 0xf);/* u8= )prxreport->tid; */ =20 pattrib->amsdu =3D (u8)((le32_to_cpu(report.rxdw1) >> 13) & 0x1);/* u8)p= rxreport->amsdu; */ diff --git a/drivers/staging/r8188eu/include/rtw_recv.h b/drivers/staging/r= 8188eu/include/rtw_recv.h index 6a6f6373467b..d2f1c71f2262 100644 --- a/drivers/staging/r8188eu/include/rtw_recv.h +++ b/drivers/staging/r8188eu/include/rtw_recv.h @@ -82,7 +82,7 @@ struct rx_pkt_attrib { u8 hdrlen; /* the WLAN Header Len */ u8 to_fr_ds; u8 amsdu; - u8 qos; + bool qos; u8 priority; u8 pw_save; u8 mdata; --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 654BDC433EF for ; Sun, 27 Feb 2022 16:42:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231830AbiB0QnB (ORCPT ); Sun, 27 Feb 2022 11:43:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231345AbiB0Qmv (ORCPT ); Sun, 27 Feb 2022 11:42:51 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24BCF40E7B for ; Sun, 27 Feb 2022 08:42:15 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMcd-0005Z9-AI; Sun, 27 Feb 2022 17:42:11 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 5/8] staging: r8188eu: use ieee80211 helper to check for more fragments Date: Sun, 27 Feb 2022 17:41:44 +0100 Message-Id: <20220227164147.1168847-6-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the ieee80211 helper to check the "more fragments" bit. Remove the internal GetMFrag macro. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 2 +- drivers/staging/r8188eu/include/wifi.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 3a92d261f7c3..e8da2e5bbc32 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1081,7 +1081,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv pattrib->seq_num =3D GetSequence(ptr); =20 pattrib->pw_save =3D GetPwrMgt(ptr); - pattrib->mfrag =3D GetMFrag(ptr); + pattrib->mfrag =3D ieee80211_has_morefrags(fc); pattrib->mdata =3D GetMData(ptr); pattrib->privacy =3D GetPrivacy(ptr); pattrib->order =3D GetOrder(ptr); diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 5b383c2e9880..1d703bc94fca 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -183,8 +183,6 @@ enum WIFI_REG_DOMAIN { #define SetMFrag(pbuf) \ *(__le16 *)(pbuf) |=3D cpu_to_le16(_MORE_FRAG_) =20 -#define GetMFrag(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_MORE_FRAG_)) != =3D 0) - #define ClearMFrag(pbuf) \ *(__le16 *)(pbuf) &=3D (~cpu_to_le16(_MORE_FRAG_)) =20 --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32893C433F5 for ; Sun, 27 Feb 2022 16:42:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230182AbiB0QnE (ORCPT ); Sun, 27 Feb 2022 11:43:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231379AbiB0Qmw (ORCPT ); Sun, 27 Feb 2022 11:42:52 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 135FF6D388 for ; Sun, 27 Feb 2022 08:42:16 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMce-0005Z9-3r; Sun, 27 Feb 2022 17:42:12 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 6/8] staging: r8188eu: use ieee80211 helper to read "more data" Date: Sun, 27 Feb 2022 17:41:45 +0100 Message-Id: <20220227164147.1168847-7-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the ieee80211 helper to read the "more data" bit. The driver-specific macro GetMData can be removed. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 2 +- drivers/staging/r8188eu/include/wifi.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index e8da2e5bbc32..e7a1aa9457b7 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1082,7 +1082,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv =20 pattrib->pw_save =3D GetPwrMgt(ptr); pattrib->mfrag =3D ieee80211_has_morefrags(fc); - pattrib->mdata =3D GetMData(ptr); + pattrib->mdata =3D ieee80211_has_moredata(fc); pattrib->privacy =3D GetPrivacy(ptr); pattrib->order =3D GetOrder(ptr); =20 diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 1d703bc94fca..336c32470150 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -205,8 +205,6 @@ enum WIFI_REG_DOMAIN { #define SetMData(pbuf) \ *(__le16 *)(pbuf) |=3D cpu_to_le16(_MORE_DATA_) =20 -#define GetMData(pbuf) (((*(__le16 *)(pbuf)) & cpu_to_le16(_MORE_DATA_)) != =3D 0) - #define ClearMData(pbuf) \ *(__le16 *)(pbuf) &=3D (~cpu_to_le16(_MORE_DATA_)) =20 --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6239AC433F5 for ; Sun, 27 Feb 2022 16:42:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231863AbiB0QnJ (ORCPT ); Sun, 27 Feb 2022 11:43:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231515AbiB0Qmx (ORCPT ); Sun, 27 Feb 2022 11:42:53 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CECDE6D39F for ; Sun, 27 Feb 2022 08:42:16 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMce-0005Z9-S2; Sun, 27 Feb 2022 17:42:12 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 7/8] staging: r8188eu: use ieee80211 helper to read the protected bit Date: Sun, 27 Feb 2022 17:41:46 +0100 Message-Id: <20220227164147.1168847-8-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the ieee80211 helper to read the "protected" bit. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index e7a1aa9457b7..b245b0d54973 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1083,7 +1083,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv pattrib->pw_save =3D GetPwrMgt(ptr); pattrib->mfrag =3D ieee80211_has_morefrags(fc); pattrib->mdata =3D ieee80211_has_moredata(fc); - pattrib->privacy =3D GetPrivacy(ptr); + pattrib->privacy =3D ieee80211_has_protected(fc); pattrib->order =3D GetOrder(ptr); =20 /* Dump rx packets */ --=20 2.30.2 From nobody Tue Jun 23 20:22:36 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE8AAC433EF for ; Sun, 27 Feb 2022 16:42:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231905AbiB0QnN (ORCPT ); Sun, 27 Feb 2022 11:43:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231777AbiB0Qmy (ORCPT ); Sun, 27 Feb 2022 11:42:54 -0500 Received: from viti.kaiser.cx (viti.kaiser.cx [IPv6:2a01:238:43fe:e600:cd0c:bd4a:7a3:8e9f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5AC6A6D388 for ; Sun, 27 Feb 2022 08:42:18 -0800 (PST) Received: from ipservice-092-217-088-081.092.217.pools.vodafone-ip.de ([92.217.88.81] helo=martin-debian-2.paytec.ch) by viti.kaiser.cx with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1nOMcf-0005Z9-M5; Sun, 27 Feb 2022 17:42:13 +0100 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Pavel Skripkin , Martin Kaiser Subject: [PATCH v2 8/8] staging: r8188eu: use ieee80211 helper to read the "order" bit Date: Sun, 27 Feb 2022 17:41:47 +0100 Message-Id: <20220227164147.1168847-9-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220227164147.1168847-1-martin@kaiser.cx> References: <20220218135038.908307-1-martin@kaiser.cx> <20220227164147.1168847-1-martin@kaiser.cx> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use the ieee80211 helper to read the "order" bit. The driver-specific macro GetOrder can be removed. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 2 +- drivers/staging/r8188eu/include/wifi.h | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index b245b0d54973..d77d983510a0 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1084,7 +1084,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv pattrib->mfrag =3D ieee80211_has_morefrags(fc); pattrib->mdata =3D ieee80211_has_moredata(fc); pattrib->privacy =3D ieee80211_has_protected(fc); - pattrib->order =3D GetOrder(ptr); + pattrib->order =3D ieee80211_has_order(fc); =20 /* Dump rx packets */ GetHalDefVar8188EUsb(adapter, HAL_DEF_DBG_DUMP_RXPKT, &bDumpRxPkt); diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 336c32470150..39b7a596e4c1 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -217,9 +217,6 @@ enum WIFI_REG_DOMAIN { #define ClearPrivacy(pbuf) \ *(__le16 *)(pbuf) &=3D (~cpu_to_le16(_PRIVACY_)) =20 -#define GetOrder(pbuf) \ - (((*(__le16 *)(pbuf)) & cpu_to_le16(_ORDER_)) !=3D 0) - #define GetFrameType(pbuf) \ (le16_to_cpu(*(__le16 *)(pbuf)) & (BIT(3) | BIT(2))) =20 --=20 2.30.2