From nobody Fri Jun 19 22:36:26 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 48DFCC433EF for ; Sun, 27 Mar 2022 18:10:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236339AbiC0SLz (ORCPT ); Sun, 27 Mar 2022 14:11:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231441AbiC0SLr (ORCPT ); Sun, 27 Mar 2022 14:11:47 -0400 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 D59EA38183 for ; Sun, 27 Mar 2022 11:10:01 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXKv-00019B-7Q; Sun, 27 Mar 2022 20:09:57 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser , kernel test robot Subject: [PATCH v2 1/9] staging: r8188eu: use ieee80211 define for version check Date: Sun, 27 Mar 2022 20:09:36 +0200 Message-Id: <20220327180944.712545-2-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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_FCTL_VERS define to check the version number of a received frame. Covert IEEE80211_FCTL_VERS to le16 before using it as a mask for fc, which is also an le16 value. The ieee80211_... helper functions use the same approach. Reported-by: kernel test robot Signed-off-by: Martin Kaiser --- v2 - fix a sparse warning, conver IEEE80211_FCTL_VERS to little endian drivers/staging/r8188eu/core/rtw_recv.c | 4 +--- 1 file 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 8800ea4825ff..fc7f2a559f9b 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1063,7 +1063,6 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv 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 if (pmlmeext->sitesurvey_res.state =3D=3D SCAN_PROCESS) { @@ -1072,8 +1071,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv pmlmeext->channel_set[ch_set_idx].rx_count++; } =20 - /* add version chk */ - if (ver !=3D 0) + if ((fc & cpu_to_le16(IEEE80211_FCTL_VERS)) !=3D 0) return _FAIL; =20 pattrib->to_fr_ds =3D get_tofr_ds(ptr); --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 E3B50C433F5 for ; Sun, 27 Mar 2022 18:10:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236305AbiC0SLu (ORCPT ); Sun, 27 Mar 2022 14:11:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236271AbiC0SLq (ORCPT ); Sun, 27 Mar 2022 14:11:46 -0400 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 D528F3467D for ; Sun, 27 Mar 2022 11:10:01 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXKw-00019B-3X; Sun, 27 Mar 2022 20:09:58 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 2/9] staging: r8188eu: use ieee80211 helper to read the pwr bit Date: Sun, 27 Mar 2022 20:09:37 +0200 Message-Id: <20220327180944.712545-3-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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 power management 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 fc7f2a559f9b..5af715a08430 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1079,7 +1079,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv pattrib->frag_num =3D GetFragNum(ptr); pattrib->seq_num =3D GetSequence(ptr); =20 - pattrib->pw_save =3D GetPwrMgt(ptr); + pattrib->pw_save =3D ieee80211_has_pm(fc); pattrib->mfrag =3D ieee80211_has_morefrags(fc); pattrib->mdata =3D ieee80211_has_moredata(fc); pattrib->privacy =3D ieee80211_has_protected(fc); --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 F3972C433EF for ; Sun, 27 Mar 2022 18:10:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236317AbiC0SL6 (ORCPT ); Sun, 27 Mar 2022 14:11:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236014AbiC0SLt (ORCPT ); Sun, 27 Mar 2022 14:11:49 -0400 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 95B8534672 for ; Sun, 27 Mar 2022 11:10:03 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXKw-00019B-Sr; Sun, 27 Mar 2022 20:09:58 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 3/9] staging: r8188eu: use standard mechanisms for control frames Date: Sun, 27 Mar 2022 20:09:38 +0200 Message-Id: <20220327180944.712545-4-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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 defines and macros from ieee80211.h to check for control frames and to define control frame subtypes. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 3 ++- drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c | 3 ++- drivers/staging/r8188eu/include/wifi.h | 21 ++++++------------- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 5af715a08430..7735fbe6fa72 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -801,9 +801,10 @@ static int validate_recv_ctrl_frame(struct adapter *pa= dapter, struct rx_pkt_attrib *pattrib =3D &precv_frame->attrib; struct sta_priv *pstapriv =3D &padapter->stapriv; u8 *pframe =3D precv_frame->rx_data; + __le16 fc =3D *(__le16 *)pframe; /* uint len =3D precv_frame->len; */ =20 - if (GetFrameType(pframe) !=3D WIFI_CTRL_TYPE) + if (!ieee80211_is_ctl(fc)) return _FAIL; =20 /* receive the frames that ra(a1) is my address */ diff --git a/drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c b/drivers/stagin= g/r8188eu/hal/rtl8188e_rxdesc.c index 9bf7a9248026..7e50a42b6f75 100644 --- a/drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c +++ b/drivers/staging/r8188eu/hal/rtl8188e_rxdesc.c @@ -113,12 +113,13 @@ void update_recvframe_phyinfo_88e(struct recv_frame *= precvframe, struct phy_stat struct hal_data_8188e *pHalData =3D &padapter->haldata; struct phy_info *pPHYInfo =3D &pattrib->phy_info; u8 *wlanhdr =3D precvframe->rx_data; + __le16 fc =3D *(__le16 *)wlanhdr; struct odm_per_pkt_info pkt_info; u8 *sa =3D NULL; struct sta_priv *pstapriv; struct sta_info *psta; =20 - pkt_info.bPacketMatchBSSID =3D ((!IsFrameTypeCtrl(wlanhdr)) && + pkt_info.bPacketMatchBSSID =3D ((!ieee80211_is_ctl(fc)) && !pattrib->icv_err && !pattrib->crc_err && !memcmp(get_hdr_bssid(wlanhdr), get_bssid(&padapter->mlmepriv), ETH_ALEN)); diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 299553351246..47b73fde2006 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -13,7 +13,6 @@ #define WLAN_SSID_MAXLEN 32 =20 enum WIFI_FRAME_TYPE { - WIFI_CTRL_TYPE =3D (BIT(2)), WIFI_DATA_TYPE =3D (BIT(3)), WIFI_QOS_DATA_TYPE =3D (BIT(7)|BIT(3)), /* QoS Data */ }; @@ -34,13 +33,12 @@ enum WIFI_FRAME_SUBTYPE { 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), - WIFI_RTS =3D (BIT(7) | BIT(5) | BIT(4) | WIFI_CTRL_TYPE), - WIFI_CTS =3D (BIT(7) | BIT(6) | WIFI_CTRL_TYPE), - WIFI_ACK =3D (BIT(7) | BIT(6) | BIT(4) | WIFI_CTRL_TYPE), - WIFI_CFEND =3D (BIT(7) | BIT(6) | BIT(5) | WIFI_CTRL_TYPE), - WIFI_CFEND_CFACK =3D (BIT(7) | BIT(6) | BIT(5) | BIT(4) | - WIFI_CTRL_TYPE), + WIFI_PSPOLL =3D (BIT(7) | BIT(5) | IEEE80211_FTYPE_CTL), + WIFI_RTS =3D (BIT(7) | BIT(5) | BIT(4) | IEEE80211_FTYPE_CTL), + WIFI_CTS =3D (BIT(7) | BIT(6) | IEEE80211_FTYPE_CTL), + WIFI_ACK =3D (BIT(7) | BIT(6) | BIT(4) | IEEE80211_FTYPE_CTL), + WIFI_CFEND =3D (BIT(7) | BIT(6) | BIT(5) | IEEE80211_FTYPE_CTL), + WIFI_CFEND_CFACK =3D (BIT(7) | BIT(6) | BIT(5) | BIT(4) | IEEE80211_FT= YPE_CTL), =20 /* below is for data frame */ WIFI_DATA =3D (0 | WIFI_DATA_TYPE), @@ -340,13 +338,6 @@ static inline unsigned char *get_hdr_bssid(unsigned ch= ar *pframe) return sa; } =20 -static inline bool IsFrameTypeCtrl(unsigned char *pframe) -{ - if (WIFI_CTRL_TYPE =3D=3D GetFrameType(pframe)) - return true; - else - return false; -} /*------------------------------------------------------------------------= ----- Below is for the security related definition --------------------------------------------------------------------------= ----*/ --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 ECF33C433F5 for ; Sun, 27 Mar 2022 18:10:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236345AbiC0SMB (ORCPT ); Sun, 27 Mar 2022 14:12:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236311AbiC0SLt (ORCPT ); Sun, 27 Mar 2022 14:11:49 -0400 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 D4D8F34656 for ; Sun, 27 Mar 2022 11:10:03 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXKx-00019B-Mc; Sun, 27 Mar 2022 20:09:59 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 4/9] staging: r8188eu: use standard mechanisms for data frames Date: Sun, 27 Mar 2022 20:09:39 +0200 Message-Id: <20220327180944.712545-5-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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 defines and macros from ieee80211.h to check for data frames and to define data frame subtypes. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 5 +++-- drivers/staging/r8188eu/core/rtw_xmit.c | 4 ++-- drivers/staging/r8188eu/include/wifi.h | 17 ++++++++--------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 7735fbe6fa72..341aca28b97f 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1283,8 +1283,9 @@ struct recv_frame *recvframe_chk_defrag(struct adapte= r *padapter, struct recv_fr psta_addr =3D pfhdr->attrib.ta; psta =3D rtw_get_stainfo(pstapriv, psta_addr); if (!psta) { - u8 type =3D GetFrameType(pfhdr->rx_data); - if (type !=3D WIFI_DATA_TYPE) { + __le16 fc =3D *(__le16 *)pfhdr->rx_data; + + if (ieee80211_is_data(fc)) { psta =3D rtw_get_bcmc_stainfo(padapter); pdefrag_q =3D &psta->sta_recvpriv.defrag_q; } else { diff --git a/drivers/staging/r8188eu/core/rtw_xmit.c b/drivers/staging/r818= 8eu/core/rtw_xmit.c index c2a550e7250e..781dc80ff9ed 100644 --- a/drivers/staging/r8188eu/core/rtw_xmit.c +++ b/drivers/staging/r8188eu/core/rtw_xmit.c @@ -497,7 +497,7 @@ static s32 update_attrib(struct adapter *padapter, stru= ct sk_buff *pkt, struct p pattrib->pkt_hdrlen =3D ETH_HLEN;/* pattrib->ether_type =3D=3D 0x8100) ? = (14 + 4): 14; vlan tag */ =20 pattrib->hdrlen =3D WLAN_HDR_A3_LEN; - pattrib->subtype =3D WIFI_DATA_TYPE; + pattrib->subtype =3D IEEE80211_FTYPE_DATA; pattrib->priority =3D 0; =20 if (check_fwstate(pmlmepriv, WIFI_AP_STATE | WIFI_ADHOC_STATE | WIFI_ADHO= C_MASTER_STATE)) { @@ -717,7 +717,7 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr,= struct pkt_attrib *pattr =20 SetFrameSubType(fctrl, pattrib->subtype); =20 - if (pattrib->subtype & WIFI_DATA_TYPE) { + if (pattrib->subtype & IEEE80211_FTYPE_DATA) { if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { /* to_ds =3D 1, fr_ds =3D 0; */ /* Data transfer to AP */ diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 47b73fde2006..c71334f3986a 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -13,7 +13,6 @@ #define WLAN_SSID_MAXLEN 32 =20 enum WIFI_FRAME_TYPE { - WIFI_DATA_TYPE =3D (BIT(3)), WIFI_QOS_DATA_TYPE =3D (BIT(7)|BIT(3)), /* QoS Data */ }; =20 @@ -41,14 +40,14 @@ enum WIFI_FRAME_SUBTYPE { WIFI_CFEND_CFACK =3D (BIT(7) | BIT(6) | BIT(5) | BIT(4) | IEEE80211_FT= YPE_CTL), =20 /* below is for data frame */ - WIFI_DATA =3D (0 | WIFI_DATA_TYPE), - WIFI_DATA_CFACK =3D (BIT(4) | WIFI_DATA_TYPE), - WIFI_DATA_CFPOLL =3D (BIT(5) | WIFI_DATA_TYPE), - WIFI_DATA_CFACKPOLL =3D (BIT(5) | BIT(4) | WIFI_DATA_TYPE), - WIFI_DATA_NULL =3D (BIT(6) | WIFI_DATA_TYPE), - WIFI_CF_ACK =3D (BIT(6) | BIT(4) | WIFI_DATA_TYPE), - WIFI_CF_POLL =3D (BIT(6) | BIT(5) | WIFI_DATA_TYPE), - WIFI_CF_ACKPOLL =3D (BIT(6) | BIT(5) | BIT(4) | WIFI_DATA_TYPE), + WIFI_DATA =3D (0 | IEEE80211_FTYPE_DATA), + WIFI_DATA_CFACK =3D (BIT(4) | IEEE80211_FTYPE_DATA), + WIFI_DATA_CFPOLL =3D (BIT(5) | IEEE80211_FTYPE_DATA), + WIFI_DATA_CFACKPOLL =3D (BIT(5) | BIT(4) | IEEE80211_FTYPE_DATA), + WIFI_DATA_NULL =3D (BIT(6) | IEEE80211_FTYPE_DATA), + WIFI_CF_ACK =3D (BIT(6) | BIT(4) | IEEE80211_FTYPE_DATA), + WIFI_CF_POLL =3D (BIT(6) | BIT(5) | IEEE80211_FTYPE_DATA), + WIFI_CF_ACKPOLL =3D (BIT(6) | BIT(5) | BIT(4) | IEEE80211_FTYPE_DATA), WIFI_QOS_DATA_NULL =3D (BIT(6) | WIFI_QOS_DATA_TYPE), }; =20 --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 BFCAFC433EF for ; Sun, 27 Mar 2022 18:10:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233775AbiC0SMF (ORCPT ); Sun, 27 Mar 2022 14:12:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236312AbiC0SLt (ORCPT ); Sun, 27 Mar 2022 14:11:49 -0400 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 5A5E034661 for ; Sun, 27 Mar 2022 11:10:04 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXKy-00019B-Gc; Sun, 27 Mar 2022 20:10:00 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 5/9] staging: r8188eu: use standard mechanisms for qos data frames Date: Sun, 27 Mar 2022 20:09:40 +0200 Message-Id: <20220327180944.712545-6-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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 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 --- drivers/staging/r8188eu/core/rtw_recv.c | 4 ++-- drivers/staging/r8188eu/core/rtw_xmit.c | 2 +- drivers/staging/r8188eu/include/wifi.h | 6 +----- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index 341aca28b97f..bb67abd3ed99 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -749,6 +749,7 @@ static int sta2ap_data_frame(struct adapter *adapter, struct sta_priv *pstapriv =3D &adapter->stapriv; struct mlme_priv *pmlmepriv =3D &adapter->mlmepriv; u8 *ptr =3D precv_frame->rx_data; + __le16 fc =3D *(__le16 *)ptr; unsigned char *mybssid =3D get_bssid(pmlmepriv); int ret =3D _SUCCESS; =20 @@ -769,9 +770,8 @@ static int sta2ap_data_frame(struct adapter *adapter, =20 process_pwrbit_data(adapter, precv_frame); =20 - if ((GetFrameSubType(ptr) & WIFI_QOS_DATA_TYPE) =3D=3D WIFI_QOS_DATA_TYP= E) { + if (ieee80211_is_data_qos(fc)) process_wmmps_data(adapter, precv_frame); - } =20 if (GetFrameSubType(ptr) & BIT(6)) { /* No data, will not indicate to upper layer, temporily count it here */ diff --git a/drivers/staging/r8188eu/core/rtw_xmit.c b/drivers/staging/r818= 8eu/core/rtw_xmit.c index 781dc80ff9ed..aede8ef8b098 100644 --- a/drivers/staging/r8188eu/core/rtw_xmit.c +++ b/drivers/staging/r8188eu/core/rtw_xmit.c @@ -399,7 +399,7 @@ static void set_qos(struct pkt_file *ppktfile, struct p= kt_attrib *pattrib) =20 pattrib->priority =3D user_prio; pattrib->hdrlen =3D WLAN_HDR_A3_QOS_LEN; - pattrib->subtype =3D WIFI_QOS_DATA_TYPE; + pattrib->subtype =3D IEEE80211_STYPE_QOS_DATA | IEEE80211_FTYPE_DATA; } =20 static s32 update_attrib(struct adapter *padapter, struct sk_buff *pkt, st= ruct pkt_attrib *pattrib) diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index c71334f3986a..2e42b4b48c25 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -12,10 +12,6 @@ #define WLAN_HDR_A3_QOS_LEN 26 #define WLAN_SSID_MAXLEN 32 =20 -enum WIFI_FRAME_TYPE { - WIFI_QOS_DATA_TYPE =3D (BIT(7)|BIT(3)), /* QoS Data */ -}; - enum WIFI_FRAME_SUBTYPE { /* below is for mgt frame */ WIFI_ASSOCREQ =3D (0 | IEEE80211_FTYPE_MGMT), @@ -48,7 +44,7 @@ enum WIFI_FRAME_SUBTYPE { WIFI_CF_ACK =3D (BIT(6) | BIT(4) | IEEE80211_FTYPE_DATA), WIFI_CF_POLL =3D (BIT(6) | BIT(5) | IEEE80211_FTYPE_DATA), WIFI_CF_ACKPOLL =3D (BIT(6) | BIT(5) | BIT(4) | IEEE80211_FTYPE_DATA), - WIFI_QOS_DATA_NULL =3D (BIT(6) | WIFI_QOS_DATA_TYPE), + WIFI_QOS_DATA_NULL =3D (BIT(6) | IEEE80211_STYPE_QOS_DATA | IEEE80211_FTY= PE_DATA), }; =20 enum WIFI_REASON_CODE { --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 E13EFC433F5 for ; Sun, 27 Mar 2022 18:10:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236383AbiC0SMP (ORCPT ); Sun, 27 Mar 2022 14:12:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236303AbiC0SLu (ORCPT ); Sun, 27 Mar 2022 14:11:50 -0400 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 70B6C34BA7 for ; Sun, 27 Mar 2022 11:10:05 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXKz-00019B-AO; Sun, 27 Mar 2022 20:10:01 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 6/9] staging: r8188eu: remove unused data frame subtypes Date: Sun, 27 Mar 2022 20:09:41 +0200 Message-Id: <20220327180944.712545-7-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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" Remove unused defines for data frame subtypes. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/include/wifi.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 2e42b4b48c25..79a2675c6cc1 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -41,9 +41,6 @@ enum WIFI_FRAME_SUBTYPE { WIFI_DATA_CFPOLL =3D (BIT(5) | IEEE80211_FTYPE_DATA), WIFI_DATA_CFACKPOLL =3D (BIT(5) | BIT(4) | IEEE80211_FTYPE_DATA), WIFI_DATA_NULL =3D (BIT(6) | IEEE80211_FTYPE_DATA), - WIFI_CF_ACK =3D (BIT(6) | BIT(4) | IEEE80211_FTYPE_DATA), - WIFI_CF_POLL =3D (BIT(6) | BIT(5) | IEEE80211_FTYPE_DATA), - WIFI_CF_ACKPOLL =3D (BIT(6) | BIT(5) | BIT(4) | IEEE80211_FTYPE_DATA), WIFI_QOS_DATA_NULL =3D (BIT(6) | IEEE80211_STYPE_QOS_DATA | IEEE80211_FTY= PE_DATA), }; =20 --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 45553C433EF for ; Sun, 27 Mar 2022 18:10:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235336AbiC0SMI (ORCPT ); Sun, 27 Mar 2022 14:12:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236304AbiC0SLu (ORCPT ); Sun, 27 Mar 2022 14:11:50 -0400 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 1DF6D3524C for ; Sun, 27 Mar 2022 11:10:06 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXL0-00019B-55; Sun, 27 Mar 2022 20:10:02 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 7/9] staging: r8188eu: remove unused control frame subtypes Date: Sun, 27 Mar 2022 20:09:42 +0200 Message-Id: <20220327180944.712545-8-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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" Remove unused defines for control frame subtypes. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/include/wifi.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 79a2675c6cc1..24d404f0f5f4 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -29,11 +29,6 @@ enum WIFI_FRAME_SUBTYPE { =20 /* below is for control frame */ WIFI_PSPOLL =3D (BIT(7) | BIT(5) | IEEE80211_FTYPE_CTL), - WIFI_RTS =3D (BIT(7) | BIT(5) | BIT(4) | IEEE80211_FTYPE_CTL), - WIFI_CTS =3D (BIT(7) | BIT(6) | IEEE80211_FTYPE_CTL), - WIFI_ACK =3D (BIT(7) | BIT(6) | BIT(4) | IEEE80211_FTYPE_CTL), - WIFI_CFEND =3D (BIT(7) | BIT(6) | BIT(5) | IEEE80211_FTYPE_CTL), - WIFI_CFEND_CFACK =3D (BIT(7) | BIT(6) | BIT(5) | BIT(4) | IEEE80211_FT= YPE_CTL), =20 /* below is for data frame */ WIFI_DATA =3D (0 | IEEE80211_FTYPE_DATA), --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 CEC9EC433EF for ; Sun, 27 Mar 2022 18:10:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236311AbiC0SMT (ORCPT ); Sun, 27 Mar 2022 14:12:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236294AbiC0SLv (ORCPT ); Sun, 27 Mar 2022 14:11:51 -0400 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 75593366AF for ; Sun, 27 Mar 2022 11:10:06 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXL1-00019B-3V; Sun, 27 Mar 2022 20:10:03 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 8/9] staging: r8188eu: use ieee80211 macro for sequence number Date: Sun, 27 Mar 2022 20:09:43 +0200 Message-Id: <20220327180944.712545-9-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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_SEQ_TO_SN macro in function validate_recv_frame to get the sequence number of an incoming frame. Map the incoming rx bytes to a struct ieee80211_hdr. Replace the fc variable with struct ieee80211_hdr's frame control component. The IEEE80211_SEQ_TO_SN macro takes the sequence control field of an ieee80211 header and extracts the sequence number. The macro's input parameter must be in host endianness, the sequence number in the 80211 header is little-endian, we have to convert it to host endianness. Remove the local GetSequence macro, it is not used any more. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_recv.c | 24 ++++++++++++------------ drivers/staging/r8188eu/include/wifi.h | 3 --- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_recv.c b/drivers/staging/r818= 8eu/core/rtw_recv.c index bb67abd3ed99..415747da7e3b 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1063,7 +1063,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv u8 bDumpRxPkt; struct rx_pkt_attrib *pattrib =3D &precv_frame->attrib; u8 *ptr =3D precv_frame->rx_data; - __le16 fc =3D *(__le16 *)ptr; + struct ieee80211_hdr *hdr =3D (struct ieee80211_hdr *)precv_frame->rx_dat= a; struct mlme_ext_priv *pmlmeext =3D &adapter->mlmeextpriv; =20 if (pmlmeext->sitesurvey_res.state =3D=3D SCAN_PROCESS) { @@ -1072,31 +1072,31 @@ static int validate_recv_frame(struct adapter *adap= ter, struct recv_frame *precv pmlmeext->channel_set[ch_set_idx].rx_count++; } =20 - if ((fc & cpu_to_le16(IEEE80211_FCTL_VERS)) !=3D 0) + if ((hdr->frame_control & cpu_to_le16(IEEE80211_FCTL_VERS)) !=3D 0) return _FAIL; =20 pattrib->to_fr_ds =3D get_tofr_ds(ptr); =20 pattrib->frag_num =3D GetFragNum(ptr); - pattrib->seq_num =3D GetSequence(ptr); + pattrib->seq_num =3D IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl)); =20 - pattrib->pw_save =3D ieee80211_has_pm(fc); - pattrib->mfrag =3D ieee80211_has_morefrags(fc); - pattrib->mdata =3D ieee80211_has_moredata(fc); - pattrib->privacy =3D ieee80211_has_protected(fc); - pattrib->order =3D ieee80211_has_order(fc); + pattrib->pw_save =3D ieee80211_has_pm(hdr->frame_control); + pattrib->mfrag =3D ieee80211_has_morefrags(hdr->frame_control); + pattrib->mdata =3D ieee80211_has_moredata(hdr->frame_control); + pattrib->privacy =3D ieee80211_has_protected(hdr->frame_control); + pattrib->order =3D ieee80211_has_order(hdr->frame_control); =20 /* Dump rx packets */ GetHalDefVar8188EUsb(adapter, HAL_DEF_DBG_DUMP_RXPKT, &bDumpRxPkt); =20 /* We return _SUCCESS only for data frames. */ - if (ieee80211_is_mgmt(fc)) + if (ieee80211_is_mgmt(hdr->frame_control)) validate_recv_mgnt_frame(adapter, precv_frame); - else if (ieee80211_is_ctl(fc)) + else if (ieee80211_is_ctl(hdr->frame_control)) validate_recv_ctrl_frame(adapter, precv_frame); - else if (ieee80211_is_data(fc)) { + else if (ieee80211_is_data(hdr->frame_control)) { rtw_led_control(adapter, LED_CTL_RX); - pattrib->qos =3D ieee80211_is_data_qos(fc); + pattrib->qos =3D ieee80211_is_data_qos(hdr->frame_control); retval =3D validate_recv_data_frame(adapter, precv_frame); if (retval =3D=3D _FAIL) { struct recv_priv *precvpriv =3D &adapter->recvpriv; diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index 24d404f0f5f4..dbda1880c45a 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -189,9 +189,6 @@ enum WIFI_REG_DOMAIN { *(__le16 *)(pbuf) |=3D cpu_to_le16(type); \ } while (0) =20 -#define GetSequence(pbuf) \ - (le16_to_cpu(*(__le16 *)((size_t)(pbuf) + 22)) >> 4) - #define GetFragNum(pbuf) \ (le16_to_cpu(*(__le16 *)((size_t)(pbuf) + 22)) & 0x0f) =20 --=20 2.30.2 From nobody Fri Jun 19 22:36:26 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 6FA87C433F5 for ; Sun, 27 Mar 2022 18:10:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236349AbiC0SMV (ORCPT ); Sun, 27 Mar 2022 14:12:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236318AbiC0SLv (ORCPT ); Sun, 27 Mar 2022 14:11:51 -0400 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 BC98437BCC for ; Sun, 27 Mar 2022 11:10:07 -0700 (PDT) Received: from dslb-178-004-173-219.178.004.pools.vodafone-ip.de ([178.4.173.219] 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 1nYXL2-00019B-2s; Sun, 27 Mar 2022 20:10:04 +0200 From: Martin Kaiser To: Greg Kroah-Hartman Cc: Larry Finger , Phillip Potter , Michael Straube , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, David Laight , Martin Kaiser Subject: [PATCH v2 9/9] staging: r8188eu: use ieee80211 define for fragment number Date: Sun, 27 Mar 2022 20:09:44 +0200 Message-Id: <20220327180944.712545-10-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220327180944.712545-1-martin@kaiser.cx> References: <20220323074859.177425-1-martin@kaiser.cx> <20220327180944.712545-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_SCTL_FRAG define to extract the fragment number from an incoming frame. pattrib->frag_num must be in host endianness, we have to convert hdr->seq_ctrl, this field is little-endian. Remove the local GetFragNum macro, it is not used any more. 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 415747da7e3b..62cf2df90073 100644 --- a/drivers/staging/r8188eu/core/rtw_recv.c +++ b/drivers/staging/r8188eu/core/rtw_recv.c @@ -1077,7 +1077,7 @@ static int validate_recv_frame(struct adapter *adapte= r, struct recv_frame *precv =20 pattrib->to_fr_ds =3D get_tofr_ds(ptr); =20 - pattrib->frag_num =3D GetFragNum(ptr); + pattrib->frag_num =3D le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG; pattrib->seq_num =3D IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl)); =20 pattrib->pw_save =3D ieee80211_has_pm(hdr->frame_control); diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188= eu/include/wifi.h index dbda1880c45a..e10cf17d6aa0 100644 --- a/drivers/staging/r8188eu/include/wifi.h +++ b/drivers/staging/r8188eu/include/wifi.h @@ -189,9 +189,6 @@ enum WIFI_REG_DOMAIN { *(__le16 *)(pbuf) |=3D cpu_to_le16(type); \ } while (0) =20 -#define GetFragNum(pbuf) \ - (le16_to_cpu(*(__le16 *)((size_t)(pbuf) + 22)) & 0x0f) - #define GetTupleCache(pbuf) \ (cpu_to_le16(*(unsigned short *)((size_t)(pbuf) + 22))) =20 --=20 2.30.2