staging: r8188eu: use subtype helpers in collect_bss_info
authorMartin Kaiser <martin@kaiser.cx>
Fri, 2 Dec 2022 09:31:58 +0000 (10:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Dec 2022 12:29:32 +0000 (13:29 +0100)
Use the iee80211 helper functions to check the frame subtype in
collect_bss_info. Replace the call to the driver-specific
GetFrameSubType function.

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/20221202093159.404111-2-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_mlme_ext.c

index 95a9470f4c993e535e0012135e9c26d03779b6e3..1b9cf7596a76eeae362ac3db3f69306bda75e218 100644 (file)
@@ -5963,10 +5963,11 @@ void site_survey(struct adapter *padapter)
 /* collect bss info from Beacon and Probe request/response frames. */
 u8 collect_bss_info(struct adapter *padapter, struct recv_frame *precv_frame, struct wlan_bssid_ex *bssid)
 {
+       struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)precv_frame->rx_data;
        int     i;
        u32     len;
        u8 *p;
-       u16 val16, subtype;
+       u16 val16;
        u8 *pframe = precv_frame->rx_data;
        u32     packet_len = precv_frame->len;
        u8 ie_offset;
@@ -5982,23 +5983,18 @@ u8 collect_bss_info(struct adapter *padapter, struct recv_frame *precv_frame, st
 
        memset(bssid, 0, sizeof(struct wlan_bssid_ex));
 
-       subtype = GetFrameSubType(pframe);
-
-       if (subtype == WIFI_BEACON) {
+       if (ieee80211_is_beacon(mgmt->frame_control)) {
                bssid->Reserved[0] = 1;
                ie_offset = _BEACON_IE_OFFSET_;
+       } else if (ieee80211_is_probe_req(mgmt->frame_control)) {
+               ie_offset = _PROBEREQ_IE_OFFSET_;
+               bssid->Reserved[0] = 2;
+       } else if (ieee80211_is_probe_resp(mgmt->frame_control)) {
+               ie_offset = _PROBERSP_IE_OFFSET_;
+               bssid->Reserved[0] = 3;
        } else {
-               /*  FIXME : more type */
-               if (subtype == WIFI_PROBEREQ) {
-                       ie_offset = _PROBEREQ_IE_OFFSET_;
-                       bssid->Reserved[0] = 2;
-               } else if (subtype == WIFI_PROBERSP) {
-                       ie_offset = _PROBERSP_IE_OFFSET_;
-                       bssid->Reserved[0] = 3;
-               } else {
-                       bssid->Reserved[0] = 0;
-                       ie_offset = _FIXED_IE_LENGTH_;
-               }
+               bssid->Reserved[0] = 0;
+               ie_offset = _FIXED_IE_LENGTH_;
        }
 
        bssid->Length = sizeof(struct wlan_bssid_ex) - MAX_IE_SZ + len;