staging: r8188eu: read status_code from struct ieee80211_mgmt
authorMartin Kaiser <martin@kaiser.cx>
Sat, 6 Aug 2022 11:13:49 +0000 (13:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Aug 2022 13:16:40 +0000 (15:16 +0200)
Read the status code of the association response message from struct
ieee80211_mgmt. This should be easier to understand and to review than
calculating the offset manually.

Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220806111352.690650-3-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_mlme_ext.c

index f5f7184889290545cc3890e13482eea3f9f874a8..53444cb1dba93700e122efcc7047c7c0c3b4f997 100644 (file)
@@ -1323,7 +1323,6 @@ unsigned int OnAssocRsp(struct adapter *padapter, struct recv_frame *precv_frame
        struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)precv_frame->rx_data;
        uint i;
        int res;
-       unsigned short  status;
        struct ndis_802_11_var_ie *pIE;
        struct mlme_ext_priv    *pmlmeext = &padapter->mlmeextpriv;
        struct mlme_ext_info    *pmlmeinfo = &pmlmeext->mlmext_info;
@@ -1343,9 +1342,7 @@ unsigned int OnAssocRsp(struct adapter *padapter, struct recv_frame *precv_frame
 
        _cancel_timer_ex(&pmlmeext->link_timer);
 
-       /* status */
-       status = le16_to_cpu(*(__le16 *)(pframe + WLAN_HDR_A3_LEN + 2));
-       if (status > 0) {
+       if (le16_to_cpu(mgmt->u.assoc_resp.status_code) > 0) {
                pmlmeinfo->state = WIFI_FW_NULL_STATE;
                res = -4;
                goto report_assoc_result;