staging: r8188eu: don't check the category in OnAction_back
authorMartin Kaiser <martin@kaiser.cx>
Sun, 8 May 2022 16:14:48 +0000 (18:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 15:40:56 +0000 (17:40 +0200)
Do not check the category in OnAction_back. OnAction has already checked
the category before calling OnAction_back.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220508161451.115847-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_mlme_ext.c

index 2f67e3c..1543ba1 100644 (file)
@@ -1471,7 +1471,7 @@ unsigned int OnAction_back(struct adapter *padapter, struct recv_frame *precv_fr
        struct sta_info *psta = 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 = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &pmlmeext->mlmext_info;
@@ -1492,47 +1492,45 @@ unsigned int OnAction_back(struct adapter *padapter, struct recv_frame *precv_fr
 
        frame_body = (unsigned char *)(pframe + sizeof(struct ieee80211_hdr_3addr));
 
-       category = frame_body[0];
-       if (category == WLAN_CATEGORY_BACK) { /*  representing Block Ack */
-               if (!pmlmeinfo->HT_enable)
-                       return _SUCCESS;
-               action = frame_body[1];
-               switch (action) {
-               case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */
-                       memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_request));
-                       process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa);
+       if (!pmlmeinfo->HT_enable)
+               return _SUCCESS;
+       action = frame_body[1];
+       switch (action) {
+       case RTW_WLAN_ACTION_ADDBA_REQ: /* ADDBA request */
+               memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2], sizeof(struct ADDBA_request));
+               process_addba_req(padapter, (u8 *)&pmlmeinfo->ADDBA_req, mgmt->sa);
 
-                       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 = get_unaligned_le16(&frame_body[3]);
-                       tid = ((frame_body[5] >> 2) & 0x7);
-                       if (status == 0) {      /* successful */
-                               psta->htpriv.agg_enable_bitmap |= 1 << tid;
-                               psta->htpriv.candidate_tid_bitmap &= ~BIT(tid);
-                       } else {
-                               psta->htpriv.agg_enable_bitmap &= ~BIT(tid);
-                       }
-                       break;
-               case RTW_WLAN_ACTION_DELBA: /* DELBA */
-                       if ((frame_body[3] & BIT(3)) == 0) {
-                               psta->htpriv.agg_enable_bitmap &= ~(1 << ((frame_body[3] >> 4) & 0xf));
-                               psta->htpriv.candidate_tid_bitmap &= ~(1 << ((frame_body[3] >> 4) & 0xf));
-                       } else if ((frame_body[3] & BIT(3)) == BIT(3)) {
-                               tid = (frame_body[3] >> 4) & 0x0F;
-                               preorder_ctrl =  &psta->recvreorder_ctrl[tid];
-                               preorder_ctrl->enable = false;
-                               preorder_ctrl->indicate_seq = 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 = get_unaligned_le16(&frame_body[3]);
+               tid = ((frame_body[5] >> 2) & 0x7);
+               if (status == 0) {      /* successful */
+                       psta->htpriv.agg_enable_bitmap |= 1 << tid;
+                       psta->htpriv.candidate_tid_bitmap &= ~BIT(tid);
+               } else {
+                       psta->htpriv.agg_enable_bitmap &= ~BIT(tid);
                }
+               break;
+       case RTW_WLAN_ACTION_DELBA: /* DELBA */
+               if ((frame_body[3] & BIT(3)) == 0) {
+                       psta->htpriv.agg_enable_bitmap &= ~(1 << ((frame_body[3] >> 4) & 0xf));
+                       psta->htpriv.candidate_tid_bitmap &= ~(1 << ((frame_body[3] >> 4) & 0xf));
+               } else if ((frame_body[3] & BIT(3)) == BIT(3)) {
+                       tid = (frame_body[3] >> 4) & 0x0F;
+                       preorder_ctrl =  &psta->recvreorder_ctrl[tid];
+                       preorder_ctrl->enable = false;
+                       preorder_ctrl->indicate_seq = 0xffff;
+               }
+               /* todo: how to notify the host while receiving DELETE BA */
+               break;
+       default:
+               break;
        }
+
        return _SUCCESS;
 }