From nobody Sun Feb 8 14:10:09 2026 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB13B346784 for ; Fri, 6 Feb 2026 07:55:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770364516; cv=none; b=u2/SXFZ6vS1dZ3uBchntYDGa9/9SMEx6DWwvVUW1E2jy15jUr7bgORlDbhmmsa+feen9Pc0/4RBFaPAnWfgLwLQmY/G6C8AmUhj0jg5IJkRQPonjYQMc/uq6RNGhtZxx0NelhM2yOez7KV7mMf0WgaYdOB1VWrLQ96B+H5i23UA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770364516; c=relaxed/simple; bh=4MUw6W6LK2xoEU/UCL4E0rjGEIDZ9+L9zyiyibNJZpI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s+rDYvdF2xCrJBpHPRyzG8jIN97kH4xAEGWWDo+hOX5Fwq44TgdK1X/fI+b7HXanhIJ0+dpAabYGK2tRiOd5PZGHAVgJlUi9ZhSHUC5wakzKlKFuGQOyThHqHBRbPhtUBkdUvTvJHqJZSmkSwpXigvcW0uBoBJHSeBO4GdxpZdg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=K7PMfeqT; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="K7PMfeqT" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-43621bf67ceso253046f8f.2 for ; Thu, 05 Feb 2026 23:55:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770364514; x=1770969314; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WT6bdOQ4zFhLL1x6o6kK1EPCzHkMrCnYTMRenkmKh0s=; b=K7PMfeqTUfmFg/C2zdSUybyXc/kAb+Nix5b1wwmGsVDBE1C2lOqGnrfJHsP+ASKcfy YTQmTKE2lVdInDGeQdjyOryzIvAk2IEo7RSQTUvI77Z+KlW8pPsqVbq2n44Wwhc4QEOO oDxapCoqY7IAVZqIyp6TGuB4mdJfUEVLuD+g4k60n8Fz2NZ2XcBlfc1gUZlZsgSCUNMO kMbjnAzFlxqNYhJQ75yzx8QHh4EQOMK5iVazOYyDQdf/rjJ9fXNX/UQTGpMQw65eEf6E BVJE73QuUOhYtiy8LncUtbspzmX/iRWclSMwsV7npxv0GqYh/Oa67HJnFnjhaT/WGamd VzDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770364514; x=1770969314; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WT6bdOQ4zFhLL1x6o6kK1EPCzHkMrCnYTMRenkmKh0s=; b=Ei1Qk2v0semdqpJ3BN6GisbiYCgAbVyyxn2r6AkCEq0wIcaZnQ3FfTDnL1WWup5ODn WDTUfsy9mhubxkR7YFRZfmDM1nev4YzmCnirxaX2kDvrtwZmTf5c2Pqn7XXPa51AOdxk /ZxzLViov2QdarZug9f15j1E7C2WClAmZdHiQhIPm0koKEwltOEFBsasvmH0wje8SyyZ mVwu/PyEd0YY1a2xZK9VxTJGhsfnq6cJjHkyl8uVHQWqsH4867o/j9rQNrtrxnKkrzBM PBr1JU2F3m0PpHk6e6nN69Ud52mwhSa373TbSFSbr9iCm8zxTZwahDUFQb1p9PHNyB5X scAg== X-Forwarded-Encrypted: i=1; AJvYcCX5XqlxFsXBAMWalZYjl/c7aqgQSt5tkG4bB1d+otCO9RJYf+gepE6R6DsiFlgIGWPq5fNjRZulF1Uf8RI=@vger.kernel.org X-Gm-Message-State: AOJu0YxyFqJ+jY/5QwG2O+svGDVurpNKi2G7R2uYW9xFLKlYGx2hGkMD XEYUXNPgEmHaNPxrc9Tob2Wk/oIE6zz2+K0L3ydonbYaN9Ge22EBJ/g= X-Gm-Gg: AZuq6aK+wO4fsJQ54RrJLS4PHmp5r7C0m2xmdnx32KXRvXL1iioy34b9VcPdxGLnbST Ddr7clKUzE+tiWNxQ0J5pEOCHQuko54HZD72kSqxyDkM9l3lcx5na+XZzyvT/R2281Q2ZgRDj9A dhYaiU1P/+LqUNZlMSyvYC5owrwQGwJU6a4BYTquU2EBmOSZqz3qbu8bcicZfy+kS5eXan18955 a4vTOahFKaQN6/3GkwfQ5S5Ez190xqBVY+AM3HHxSU4HcDhNRhzl6rtS7+TFKTvm+UFff5L9yoa /WYipOM+KeDeFxsvXYSrirkb1o9SdOzghtKkeb+2UTGp0SICqNmCkhh7VE2EURdwxXyLzPQQktG oYKIEtT47lxeKeSWvPnT2txAAIyPHOGYsmVT2IV3qCfgg5XNyrWe1XQok257zgC03v+Btrs/rEY pCcGrAdKvqVhdqexfkpprz0d3fbscuhTbsy8nte2YQ7sYQ60uKSE3ZQ7BtKtx2eK/SIRCca38VM Q== X-Received: by 2002:a05:6000:188e:b0:435:91b8:e029 with SMTP id ffacd0b85a97d-436293b3857mr2682788f8f.37.1770364514115; Thu, 05 Feb 2026 23:55:14 -0800 (PST) Received: from LGPC ([31.223.131.124]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-436296bd3b8sm3836039f8f.11.2026.02.05.23.55.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Feb 2026 23:55:13 -0800 (PST) From: lukagejak5@gmail.com X-Google-Original-From: luka.gejak@linux.dev To: Greg Kroah-Hartman Cc: Dan Carpenter , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Luka Gejak Subject: [PATCH v2 12/26] staging: rtl8723bs: core: fix line lengths in rtw_wlan_util.c Date: Fri, 6 Feb 2026 08:54:25 +0100 Message-ID: <20260206075439.103287-13-luka.gejak@linux.dev> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260206075439.103287-1-luka.gejak@linux.dev> References: <20260206075439.103287-1-luka.gejak@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Luka Gejak Break long lines exceeding 100 characters to comply with kernel coding style. Signed-off-by: Luka Gejak --- .../staging/rtl8723bs/core/rtw_wlan_util.c | 215 ++++++++++++------ 1 file changed, 140 insertions(+), 75 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_wlan_util.c b/drivers/stagi= ng/rtl8723bs/core/rtw_wlan_util.c index 9ab9fb25ced4..709f42f980d8 100644 --- a/drivers/staging/rtl8723bs/core/rtw_wlan_util.c +++ b/drivers/staging/rtl8723bs/core/rtw_wlan_util.c @@ -335,7 +335,8 @@ void r8723bs_select_channel(struct adapter *padapter, u= nsigned char channel) mutex_unlock(&(adapter_to_dvobj(padapter)->setch_mutex)); } =20 -void set_channel_bwmode(struct adapter *padapter, unsigned char channel, u= nsigned char channel_offset, unsigned short bwmode) +void set_channel_bwmode(struct adapter *padapter, unsigned char channel, + unsigned char channel_offset, unsigned short bwmode) { u8 center_ch, chnl_offset80 =3D HAL_PRIME_CHNL_OFFSET_DONT_CARE; =20 @@ -351,7 +352,9 @@ void set_channel_bwmode(struct adapter *padapter, unsig= ned char channel, unsigne rtw_set_oper_bw(padapter, bwmode); rtw_set_oper_choffset(padapter, channel_offset); =20 - rtw_hal_set_chnl_bw(padapter, center_ch, bwmode, channel_offset, chnl_off= set80); /* set center channel */ + /* set center channel */ + rtw_hal_set_chnl_bw(padapter, center_ch, bwmode, + channel_offset, chnl_offset80); =20 mutex_unlock(&(adapter_to_dvobj(padapter)->setch_mutex)); } @@ -381,10 +384,14 @@ int is_client_associated_to_ap(struct adapter *padapt= er) pmlmeext =3D &padapter->mlmeextpriv; pmlmeinfo =3D &(pmlmeext->mlmext_info); =20 - if ((pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) && ((pmlmeinfo->state & 0x= 03) =3D=3D WIFI_FW_STATION_STATE)) - return true; - else - return _FAIL; + { + bool assoc_ok =3D pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS; + bool is_station =3D (pmlmeinfo->state & 0x03) =3D=3D WIFI_FW_STATION_STA= TE; + + if (assoc_ok && is_station) + return true; + } + return _FAIL; } =20 int is_client_associated_to_ibss(struct adapter *padapter) @@ -392,10 +399,14 @@ int is_client_associated_to_ibss(struct adapter *pada= pter) struct mlme_ext_priv *pmlmeext =3D &padapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo =3D &(pmlmeext->mlmext_info); =20 - if ((pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS) && ((pmlmeinfo->state & 0x= 03) =3D=3D WIFI_FW_ADHOC_STATE)) - return true; - else - return _FAIL; + { + bool assoc_ok =3D pmlmeinfo->state & WIFI_FW_ASSOC_SUCCESS; + bool is_adhoc =3D (pmlmeinfo->state & 0x03) =3D=3D WIFI_FW_ADHOC_STATE; + + if (assoc_ok && is_adhoc) + return true; + } + return _FAIL; } =20 int is_IBSS_empty(struct adapter *padapter) @@ -467,7 +478,7 @@ void _write_cam(struct adapter *padapter, u8 entry, u16= ctrl, u8 *mac, u8 *key) void _clear_cam_entry(struct adapter *padapter, u8 entry) { unsigned char null_sta[] =3D {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - unsigned char null_key[] =3D {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0= x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + unsigned char null_key[16] =3D {0}; =20 _write_cam(padapter, entry, 0, null_sta, null_key); } @@ -571,62 +582,74 @@ s16 rtw_camid_alloc(struct adapter *adapter, struct s= ta_info *sta, u8 kid) =20 mlmeinfo =3D &adapter->mlmeextpriv.mlmext_info; =20 - if ((((mlmeinfo->state & 0x03) =3D=3D WIFI_FW_AP_STATE) || ((mlmeinfo->st= ate & 0x03) =3D=3D WIFI_FW_ADHOC_STATE)) - && !sta) { - /* AP/Ad-hoc mode group key: static alloction to default key by key ID */ - if (kid > 3) { - netdev_dbg(adapter->pnetdev, - FUNC_ADPT_FMT " group key with invalid key id:%u\n", - FUNC_ADPT_ARG(adapter), kid); - rtw_warn_on(1); - goto bitmap_handle; - } - - cam_id =3D kid; - } else { - int i; - u8 *addr =3D sta ? sta->hwaddr : NULL; + { + u8 state =3D mlmeinfo->state & 0x03; + bool is_ap_or_adhoc =3D (state =3D=3D WIFI_FW_AP_STATE) || + (state =3D=3D WIFI_FW_ADHOC_STATE); =20 - if (!sta) { - if (!(mlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) { - /* bypass STA mode group key setting before connected(ex:WEP) because = bssid is not ready */ + if (is_ap_or_adhoc && !sta) { + /* AP/Ad-hoc mode group key: static alloction to default key by key ID = */ + if (kid > 3) { + netdev_dbg(adapter->pnetdev, + FUNC_ADPT_FMT " group key with invalid key id:%u\n", + FUNC_ADPT_ARG(adapter), kid); + rtw_warn_on(1); goto bitmap_handle; } =20 - addr =3D get_bssid(&adapter->mlmepriv); - } + cam_id =3D kid; + } else { + int i; + u8 *addr =3D sta ? sta->hwaddr : NULL; + + if (!sta) { + if (!(mlmeinfo->state & WIFI_FW_ASSOC_SUCCESS)) { + /* + * bypass STA mode group key setting before + * connected(ex:WEP) because bssid is not ready + */ + goto bitmap_handle; + } + + addr =3D get_bssid(&adapter->mlmepriv); + } =20 - i =3D _rtw_camid_search(adapter, addr, kid); - if (i >=3D 0) { - /* Fix issue that pairwise and group key have same key id. Pairwise key= first, group key can overwirte group only(ex: rekey) */ - if (sta || _rtw_camid_is_gk(adapter, i)) - cam_id =3D i; - else - netdev_dbg(adapter->pnetdev, - FUNC_ADPT_FMT " group key id:%u the same key id as pairwise key\n", - FUNC_ADPT_ARG(adapter), kid); - goto bitmap_handle; - } + i =3D _rtw_camid_search(adapter, addr, kid); + if (i >=3D 0) { + /* + * Fix issue that pairwise and group key have same + * key id. Pairwise key first, group key can + * overwirte group only(ex: rekey) + */ + if (sta || _rtw_camid_is_gk(adapter, i)) + cam_id =3D i; + else + netdev_dbg(adapter->pnetdev, + FUNC_ADPT_FMT " grp key:%u same as pairwise\n", + FUNC_ADPT_ARG(adapter), kid); + goto bitmap_handle; + } =20 - for (i =3D 4; i < TOTAL_CAM_ENTRY; i++) - if (!(cam_ctl->bitmap & BIT(i))) - break; + for (i =3D 4; i < TOTAL_CAM_ENTRY; i++) + if (!(cam_ctl->bitmap & BIT(i))) + break; + + if (i =3D=3D TOTAL_CAM_ENTRY) { + if (sta) + netdev_dbg(adapter->pnetdev, + FUNC_ADPT_FMT " pairwise %pM id:%u no room\n", + FUNC_ADPT_ARG(adapter), + sta->hwaddr, kid); + else + netdev_dbg(adapter->pnetdev, + FUNC_ADPT_FMT " group key id:%u no room\n", + FUNC_ADPT_ARG(adapter), kid); + rtw_warn_on(1); + goto bitmap_handle; + } =20 - if (i =3D=3D TOTAL_CAM_ENTRY) { - if (sta) - netdev_dbg(adapter->pnetdev, - FUNC_ADPT_FMT " pairwise key with %pM id:%u no room\n", - FUNC_ADPT_ARG(adapter), - sta->hwaddr, kid); - else - netdev_dbg(adapter->pnetdev, - FUNC_ADPT_FMT " group key id:%u no room\n", - FUNC_ADPT_ARG(adapter), kid); - rtw_warn_on(1); - goto bitmap_handle; + cam_id =3D i; } - - cam_id =3D i; } =20 bitmap_handle: @@ -1136,9 +1159,14 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *= pframe, u32 packet_len) if (!bssid) return true; =20 - if ((pmlmepriv->timeBcnInfoChkStart !=3D 0) && (jiffies_to_msecs(jiffies = - pmlmepriv->timeBcnInfoChkStart) > DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIO= D_IN_MS)) { - pmlmepriv->timeBcnInfoChkStart =3D 0; - pmlmepriv->NumOfBcnInfoChkFail =3D 0; + if (pmlmepriv->timeBcnInfoChkStart !=3D 0) { + unsigned long elapsed; + + elapsed =3D jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart); + if (elapsed > DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS) { + pmlmepriv->timeBcnInfoChkStart =3D 0; + pmlmepriv->NumOfBcnInfoChkFail =3D 0; + } } =20 subtype =3D GetFrameSubType(pframe) >> 4; @@ -1154,7 +1182,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *= pframe, u32 packet_len) =20 /* check bw and channel offset */ /* parsing HT_CAP_IE */ - p =3D rtw_get_ie(bssid->ies + _FIXED_IE_LENGTH_, WLAN_EID_HT_CAPABILITY, = &len, bssid->ie_length - _FIXED_IE_LENGTH_); + { + u8 *ies =3D bssid->ies + _FIXED_IE_LENGTH_; + uint ie_len =3D bssid->ie_length - _FIXED_IE_LENGTH_; + + p =3D rtw_get_ie(ies, WLAN_EID_HT_CAPABILITY, &len, ie_len); + } if (p && len > 0) { pht_cap =3D (struct ieee80211_ht_cap *)(p + 2); ht_cap_info =3D le16_to_cpu(pht_cap->cap_info); @@ -1162,7 +1195,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *= pframe, u32 packet_len) ht_cap_info =3D 0; } /* parsing HT_INFO_IE */ - p =3D rtw_get_ie(bssid->ies + _FIXED_IE_LENGTH_, WLAN_EID_HT_OPERATION, &= len, bssid->ie_length - _FIXED_IE_LENGTH_); + { + u8 *ies =3D bssid->ies + _FIXED_IE_LENGTH_; + uint ie_len =3D bssid->ie_length - _FIXED_IE_LENGTH_; + + p =3D rtw_get_ie(ies, WLAN_EID_HT_OPERATION, &len, ie_len); + } if (p && len > 0) { pht_info =3D (struct HT_info_element *)(p + 2); ht_info_infos_0 =3D pht_info->infos[0]; @@ -1181,7 +1219,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *= pframe, u32 packet_len) } =20 /* Checking for channel */ - p =3D rtw_get_ie(bssid->ies + _FIXED_IE_LENGTH_, WLAN_EID_DS_PARAMS, &len= , bssid->ie_length - _FIXED_IE_LENGTH_); + { + u8 *ies =3D bssid->ies + _FIXED_IE_LENGTH_; + uint ie_len =3D bssid->ie_length - _FIXED_IE_LENGTH_; + + p =3D rtw_get_ie(ies, WLAN_EID_DS_PARAMS, &len, ie_len); + } if (p) { bcn_channel =3D *(p + 2); } else {/* In 5G, some ap do not have DSSET IE checking HT info for chann= el */ @@ -1198,7 +1241,12 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 *= pframe, u32 packet_len) =20 /* checking SSID */ ssid_len =3D 0; - p =3D rtw_get_ie(bssid->ies + _FIXED_IE_LENGTH_, WLAN_EID_SSID, &len, bss= id->ie_length - _FIXED_IE_LENGTH_); + { + u8 *ies =3D bssid->ies + _FIXED_IE_LENGTH_; + uint ie_len =3D bssid->ie_length - _FIXED_IE_LENGTH_; + + p =3D rtw_get_ie(ies, WLAN_EID_SSID, &len, ie_len); + } if (p) { ssid_len =3D *(p + 1); if (ssid_len > NDIS_802_11_LENGTH_SSID) @@ -1269,11 +1317,16 @@ int rtw_check_bcn_info(struct adapter *Adapter, u8 = *pframe, u32 packet_len) =20 pmlmepriv->NumOfBcnInfoChkFail++; =20 - if ((pmlmepriv->timeBcnInfoChkStart !=3D 0) && (jiffies_to_msecs(jiffies = - pmlmepriv->timeBcnInfoChkStart) <=3D DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PE= RIOD_IN_MS) - && (pmlmepriv->NumOfBcnInfoChkFail >=3D DISCONNECT_BY_CHK_BCN_FAIL_THRES= HOLD)) { - pmlmepriv->timeBcnInfoChkStart =3D 0; - pmlmepriv->NumOfBcnInfoChkFail =3D 0; - return _FAIL; + if (pmlmepriv->timeBcnInfoChkStart !=3D 0) { + unsigned long elapsed; + + elapsed =3D jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart); + if (elapsed <=3D DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS && + pmlmepriv->NumOfBcnInfoChkFail >=3D DISCONNECT_BY_CHK_BCN_FAIL_THRES= HOLD) { + pmlmepriv->timeBcnInfoChkStart =3D 0; + pmlmepriv->NumOfBcnInfoChkFail =3D 0; + return _FAIL; + } } =20 return _SUCCESS; @@ -1526,7 +1579,11 @@ void update_capinfo(struct adapter *Adapter, u16 upd= ateCap) if (pmlmeext->cur_wireless_mode & (WIRELESS_11_24N)) { pmlmeinfo->slotTime =3D SHORT_SLOT_TIME; } else if (pmlmeext->cur_wireless_mode & (WIRELESS_11G)) { - if ((updateCap & cShortSlotTime) /* && (!(pMgntInfo->pHTInfo->RT2RT_HT_= Mode & RT_HT_CAP_USE_LONG_PREAMBLE)) */) + /* + * cShortSlotTime check: + * (!(pMgntInfo->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE)) + */ + if (updateCap & cShortSlotTime) /* Short Slot Time */ pmlmeinfo->slotTime =3D SHORT_SLOT_TIME; else @@ -1607,9 +1664,17 @@ int update_sta_support_rate(struct adapter *padapter= , u8 *pvar_ie, uint var_ie_l memcpy(pmlmeinfo->FW_sta_info[cam_idx].SupportedRates, pIE->data, ie_len); supportRateNum =3D ie_len; =20 - pIE =3D (struct ndis_80211_var_ie *)rtw_get_ie(pvar_ie, WLAN_EID_EXT_SUPP= _RATES, &ie_len, var_ie_len); - if (pIE && (ie_len <=3D sizeof(pmlmeinfo->FW_sta_info[cam_idx].SupportedR= ates) - supportRateNum)) - memcpy((pmlmeinfo->FW_sta_info[cam_idx].SupportedRates + supportRateNum)= , pIE->data, ie_len); + { + u8 *rates =3D pmlmeinfo->FW_sta_info[cam_idx].SupportedRates; + size_t max_ext =3D sizeof(pmlmeinfo->FW_sta_info[cam_idx].SupportedRates= ) - + supportRateNum; + + pIE =3D (struct ndis_80211_var_ie *)rtw_get_ie(pvar_ie, + WLAN_EID_EXT_SUPP_RATES, + &ie_len, var_ie_len); + if (pIE && ie_len <=3D max_ext) + memcpy(rates + supportRateNum, pIE->data, ie_len); + } =20 return _SUCCESS; } --=20 2.52.0