From nobody Fri May 8 07:37:25 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 3EB92C433EF for ; Sun, 8 May 2022 16:15:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235362AbiEHQS4 (ORCPT ); Sun, 8 May 2022 12:18:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235352AbiEHQSv (ORCPT ); Sun, 8 May 2022 12:18: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 2943F101DA for ; Sun, 8 May 2022 09:15:01 -0700 (PDT) Received: from dslb-094-219-036-010.094.219.pools.vodafone-ip.de ([94.219.36.10] 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 1nnjYf-00045H-Fu; Sun, 08 May 2022 18:14: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, Martin Kaiser Subject: [PATCH 1/5] staging: r8188eu: read addr2 from ieee80211_mgmt Date: Sun, 8 May 2022 18:14:47 +0200 Message-Id: <20220508161451.115847-2-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220508161451.115847-1-martin@kaiser.cx> References: <20220508161451.115847-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" Define a struct ieee80211_mgmt variable in the OnAction_back function. Use it to read addr2. For management frames, addr2 is the source address (sa). Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/= r8188eu/core/rtw_mlme_ext.c index 848b5051aa13..2f67e3c08191 100644 --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -1467,7 +1467,7 @@ unsigned int OnDisassoc(struct adapter *padapter, str= uct recv_frame *precv_frame =20 unsigned int OnAction_back(struct adapter *padapter, struct recv_frame *pr= ecv_frame) { - u8 *addr; + struct ieee80211_mgmt *mgmt =3D (struct ieee80211_mgmt *)precv_frame->rx_= data; struct sta_info *psta =3D NULL; struct recv_reorder_ctrl *preorder_ctrl; unsigned char *frame_body; @@ -1485,8 +1485,7 @@ unsigned int OnAction_back(struct adapter *padapter, = struct recv_frame *precv_fr if (!(pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) return _SUCCESS; =20 - addr =3D GetAddr2Ptr(pframe); - psta =3D rtw_get_stainfo(pstapriv, addr); + psta =3D rtw_get_stainfo(pstapriv, mgmt->sa); =20 if (!psta) return _SUCCESS; @@ -1501,12 +1500,12 @@ unsigned int OnAction_back(struct adapter *padapter= , struct recv_frame *precv_fr switch (action) { case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */ memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_reque= st)); - process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, addr); + process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa); =20 if (pmlmeinfo->bAcceptAddbaReq) - issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 0); + issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 0); else - issue_action_BA(padapter, addr, RTW_WLAN_ACTION_ADDBA_RESP, 37);/* rej= ect ADDBA Req */ + issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 37);/*= reject ADDBA Req */ break; case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */ status =3D get_unaligned_le16(&frame_body[3]); --=20 2.30.2 From nobody Fri May 8 07:37:25 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 32417C433F5 for ; Sun, 8 May 2022 16:15:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235440AbiEHQTG (ORCPT ); Sun, 8 May 2022 12:19:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37158 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235367AbiEHQSy (ORCPT ); Sun, 8 May 2022 12:18:54 -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 B680B101C0 for ; Sun, 8 May 2022 09:15:03 -0700 (PDT) Received: from dslb-094-219-036-010.094.219.pools.vodafone-ip.de ([94.219.36.10] 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 1nnjYh-00045H-5B; Sun, 08 May 2022 18:14: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, Martin Kaiser Subject: [PATCH 2/5] staging: r8188eu: don't check the category in OnAction_back Date: Sun, 8 May 2022 18:14:48 +0200 Message-Id: <20220508161451.115847-3-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220508161451.115847-1-martin@kaiser.cx> References: <20220508161451.115847-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" Do not check the category in OnAction_back. OnAction has already checked the category before calling OnAction_back. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 76 ++++++++++----------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/= r8188eu/core/rtw_mlme_ext.c index 2f67e3c08191..1543ba17c559 100644 --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -1471,7 +1471,7 @@ unsigned int OnAction_back(struct adapter *padapter, = struct recv_frame *precv_fr struct sta_info *psta =3D NULL; struct recv_reorder_ctrl *preorder_ctrl; unsigned char *frame_body; - unsigned char category, action; + unsigned char action; unsigned short tid, status; struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo =3D &pmlmeext->mlmext_info; @@ -1492,47 +1492,45 @@ unsigned int OnAction_back(struct adapter *padapter= , struct recv_frame *precv_fr =20 frame_body =3D (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3ad= dr)); =20 - category =3D frame_body[0]; - if (category =3D=3D WLAN_CATEGORY_BACK) { /* representing Block Ack */ - if (!pmlmeinfo->HT_enable) - return _SUCCESS; - action =3D frame_body[1]; - switch (action) { - case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */ - memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_reque= st)); - process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa); + if (!pmlmeinfo->HT_enable) + return _SUCCESS; + action =3D frame_body[1]; + switch (action) { + case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */ + memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_reques= t)); + process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa); =20 - if (pmlmeinfo->bAcceptAddbaReq) - issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 0); - else - issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 37);/*= reject ADDBA Req */ - break; - case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */ - status =3D get_unaligned_le16(&frame_body[3]); - tid =3D ((frame_body[5] >> 2) & 0x7); - if (status =3D=3D 0) { /* successful */ - psta->htpriv.agg_enable_bitmap |=3D 1 << tid; - psta->htpriv.candidate_tid_bitmap &=3D ~BIT(tid); - } else { - psta->htpriv.agg_enable_bitmap &=3D ~BIT(tid); - } - break; - case RTW_WLAN_ACTION_DELBA: /* DELBA */ - if ((frame_body[3] & BIT(3)) =3D=3D 0) { - psta->htpriv.agg_enable_bitmap &=3D ~(1 << ((frame_body[3] >> 4) & 0xf= )); - psta->htpriv.candidate_tid_bitmap &=3D ~(1 << ((frame_body[3] >> 4) & = 0xf)); - } else if ((frame_body[3] & BIT(3)) =3D=3D BIT(3)) { - tid =3D (frame_body[3] >> 4) & 0x0F; - preorder_ctrl =3D &psta->recvreorder_ctrl[tid]; - preorder_ctrl->enable =3D false; - preorder_ctrl->indicate_seq =3D 0xffff; - } - /* todo: how to notify the host while receiving DELETE BA */ - break; - default: - break; + if (pmlmeinfo->bAcceptAddbaReq) + issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 0); + else + issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 37);/* = reject ADDBA Req */ + break; + case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */ + status =3D get_unaligned_le16(&frame_body[3]); + tid =3D ((frame_body[5] >> 2) & 0x7); + if (status =3D=3D 0) { /* successful */ + psta->htpriv.agg_enable_bitmap |=3D 1 << tid; + psta->htpriv.candidate_tid_bitmap &=3D ~BIT(tid); + } else { + psta->htpriv.agg_enable_bitmap &=3D ~BIT(tid); } + break; + case RTW_WLAN_ACTION_DELBA: /* DELBA */ + if ((frame_body[3] & BIT(3)) =3D=3D 0) { + psta->htpriv.agg_enable_bitmap &=3D ~(1 << ((frame_body[3] >> 4) & 0xf)= ); + psta->htpriv.candidate_tid_bitmap &=3D ~(1 << ((frame_body[3] >> 4) & 0= xf)); + } else if ((frame_body[3] & BIT(3)) =3D=3D BIT(3)) { + tid =3D (frame_body[3] >> 4) & 0x0F; + preorder_ctrl =3D &psta->recvreorder_ctrl[tid]; + preorder_ctrl->enable =3D false; + preorder_ctrl->indicate_seq =3D 0xffff; + } + /* todo: how to notify the host while receiving DELETE BA */ + break; + default: + break; } + return _SUCCESS; } =20 --=20 2.30.2 From nobody Fri May 8 07:37:25 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 BB1A9C433F5 for ; Sun, 8 May 2022 16:15:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235476AbiEHQTN (ORCPT ); Sun, 8 May 2022 12:19:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235377AbiEHQSz (ORCPT ); Sun, 8 May 2022 12:18:55 -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 AF357101DA for ; Sun, 8 May 2022 09:15:04 -0700 (PDT) Received: from dslb-094-219-036-010.094.219.pools.vodafone-ip.de ([94.219.36.10] 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 1nnjYi-00045H-OB; Sun, 08 May 2022 18:15: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, Martin Kaiser Subject: [PATCH 3/5] staging: r8188eu: read destination address from ieee80211_mgmt Date: Sun, 8 May 2022 18:14:49 +0200 Message-Id: <20220508161451.115847-4-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220508161451.115847-1-martin@kaiser.cx> References: <20220508161451.115847-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" For management frames, addr1 is the destination address (da). Read this address from struct ieee80211_mgmt instead of calling a driver-specific macro. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/= r8188eu/core/rtw_mlme_ext.c index 1543ba17c559..1061732b9a25 100644 --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -1478,7 +1478,7 @@ unsigned int OnAction_back(struct adapter *padapter, = struct recv_frame *precv_fr u8 *pframe =3D precv_frame->rx_data; struct sta_priv *pstapriv =3D &padapter->stapriv; /* check RA matches or not */ - if (memcmp(myid(&padapter->eeprompriv), GetAddr1Ptr(pframe), ETH_ALEN))/*= for if1, sta/ap mode */ + if (memcmp(myid(&padapter->eeprompriv), mgmt->da, ETH_ALEN))/* for if1, s= ta/ap mode */ return _SUCCESS; =20 if ((pmlmeinfo->state & 0x03) !=3D WIFI_FW_AP_STATE) --=20 2.30.2 From nobody Fri May 8 07:37:25 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 12744C433F5 for ; Sun, 8 May 2022 16:15:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235497AbiEHQTT (ORCPT ); Sun, 8 May 2022 12:19:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235358AbiEHQS4 (ORCPT ); Sun, 8 May 2022 12:18:56 -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 230CA101C0 for ; Sun, 8 May 2022 09:15:05 -0700 (PDT) Received: from dslb-094-219-036-010.094.219.pools.vodafone-ip.de ([94.219.36.10] 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 1nnjYk-00045H-6Y; Sun, 08 May 2022 18:15: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, Martin Kaiser Subject: [PATCH 4/5] staging: r8188eu: use back action codes from ieee80211.h Date: Sun, 8 May 2022 18:14:50 +0200 Message-Id: <20220508161451.115847-5-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220508161451.115847-1-martin@kaiser.cx> References: <20220508161451.115847-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 defines from ieee80211.h for the back action codes. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/= r8188eu/core/rtw_mlme_ext.c index 1061732b9a25..2a7b85aefa56 100644 --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -1496,16 +1496,16 @@ unsigned int OnAction_back(struct adapter *padapter= , struct recv_frame *precv_fr return _SUCCESS; action =3D frame_body[1]; switch (action) { - case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */ + case WLAN_ACTION_ADDBA_REQ: memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_reques= t)); process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa); =20 if (pmlmeinfo->bAcceptAddbaReq) - issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 0); + issue_action_BA(padapter, mgmt->sa, WLAN_ACTION_ADDBA_RESP, 0); else - issue_action_BA(padapter, mgmt->sa, RTW_WLAN_ACTION_ADDBA_RESP, 37);/* = reject ADDBA Req */ + issue_action_BA(padapter, mgmt->sa, WLAN_ACTION_ADDBA_RESP, 37);/* reje= ct ADDBA Req */ break; - case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */ + case WLAN_ACTION_ADDBA_RESP: status =3D get_unaligned_le16(&frame_body[3]); tid =3D ((frame_body[5] >> 2) & 0x7); if (status =3D=3D 0) { /* successful */ @@ -1515,7 +1515,7 @@ unsigned int OnAction_back(struct adapter *padapter, = struct recv_frame *precv_fr psta->htpriv.agg_enable_bitmap &=3D ~BIT(tid); } break; - case RTW_WLAN_ACTION_DELBA: /* DELBA */ + case WLAN_ACTION_DELBA: if ((frame_body[3] & BIT(3)) =3D=3D 0) { psta->htpriv.agg_enable_bitmap &=3D ~(1 << ((frame_body[3] >> 4) & 0xf)= ); psta->htpriv.candidate_tid_bitmap &=3D ~(1 << ((frame_body[3] >> 4) & 0= xf)); --=20 2.30.2 From nobody Fri May 8 07:37:25 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 DE4CDC433F5 for ; Sun, 8 May 2022 16:15:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235495AbiEHQTY (ORCPT ); Sun, 8 May 2022 12:19:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37230 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235384AbiEHQTA (ORCPT ); Sun, 8 May 2022 12:19:00 -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 ECB34101DA for ; Sun, 8 May 2022 09:15:09 -0700 (PDT) Received: from dslb-094-219-036-010.094.219.pools.vodafone-ip.de ([94.219.36.10] 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 1nnjYn-00045H-RK; Sun, 08 May 2022 18:15:05 +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, Martin Kaiser Subject: [PATCH 5/5] staging: r8188eu: read back action code from ieee80211_mgmt Date: Sun, 8 May 2022 18:14:51 +0200 Message-Id: <20220508161451.115847-6-martin@kaiser.cx> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220508161451.115847-1-martin@kaiser.cx> References: <20220508161451.115847-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" Read the back action code from struct ieee80211_mgmt. struct ieee80211_mgmt contains an "action" union. Each of its members starts with an 8-bit action code. Treat the union as addba_req when we read the action code although we do not yet know if it is an addba_req. This approach is similar to ieee80211_iface_process_skb. Signed-off-by: Martin Kaiser --- drivers/staging/r8188eu/core/rtw_mlme_ext.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/r8188eu/core/rtw_mlme_ext.c b/drivers/staging/= r8188eu/core/rtw_mlme_ext.c index 2a7b85aefa56..8a9236ba7c66 100644 --- a/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -1471,7 +1471,6 @@ unsigned int OnAction_back(struct adapter *padapter, = struct recv_frame *precv_fr struct sta_info *psta =3D NULL; struct recv_reorder_ctrl *preorder_ctrl; unsigned char *frame_body; - unsigned char action; unsigned short tid, status; struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo =3D &pmlmeext->mlmext_info; @@ -1494,8 +1493,8 @@ unsigned int OnAction_back(struct adapter *padapter, = struct recv_frame *precv_fr =20 if (!pmlmeinfo->HT_enable) return _SUCCESS; - action =3D frame_body[1]; - switch (action) { + /* All union members start with an action code, it's ok to use addba_req.= */ + switch (mgmt->u.action.u.addba_req.action_code) { case WLAN_ACTION_ADDBA_REQ: memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_reques= t)); process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa); --=20 2.30.2