staging: rtl8723au: OnAction23a_back23a(): Use struct ieee8011_mgmt to parse action...
authorJes Sorensen <Jes.Sorensen@redhat.com>
Tue, 15 Apr 2014 17:44:30 +0000 (19:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 15 Apr 2014 18:04:06 +0000 (11:04 -0700)
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/core/rtw_mlme_ext.c

index c113fe3afe2b9d407b5c2546e3651a333697d7d7..ab6b00e2568d16a09b19c4ccb9b0875462c2b3b8 100644 (file)
@@ -2000,7 +2000,6 @@ static int OnAction23a_back23a(struct rtw_adapter *padapter,
        u8 *addr;
        struct sta_info *psta = NULL;
        struct recv_reorder_ctrl *preorder_ctrl;
-       unsigned char *frame_body;
        unsigned char category, action;
        unsigned short tid, status, capab, params, reason_code = 0;
        struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
@@ -2025,17 +2024,18 @@ static int OnAction23a_back23a(struct rtw_adapter *padapter,
        if (!psta)
                return _SUCCESS;
 
-       frame_body = &mgmt->u.action.category;
-
        category = mgmt->u.action.category;
        if (category == WLAN_CATEGORY_BACK) { /*  representing Block Ack */
                if (!pmlmeinfo->HT_enable)
                        return _SUCCESS;
-               action = frame_body[1];
+               /* action_code is located in the same place for all
+                  action events, so pick any */
+               action = mgmt->u.action.u.wme_action.action_code;
                DBG_8723A("%s, action =%d\n", __func__, action);
                switch (action) {
                case WLAN_ACTION_ADDBA_REQ: /* ADDBA request */
-                       memcpy(&pmlmeinfo->ADDBA_req, &frame_body[2],
+                       memcpy(&pmlmeinfo->ADDBA_req,
+                              &mgmt->u.action.u.addba_req.dialog_token,
                               sizeof(struct ADDBA_request));
                        process_addba_req23a(padapter,
                                             (u8 *)&pmlmeinfo->ADDBA_req, addr);