* [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues
@ 2026-04-28 16:44 Salman Alghamdi
2026-04-28 16:44 ` [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection Salman Alghamdi
` (8 more replies)
0 siblings, 9 replies; 13+ messages in thread
From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw)
To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel
This series addresses review feedback on v5. Changes from v5:
- Fix variable declaration ordering that broke compilation due to
dependency on uninitialized pointer (per Luka Gejak)
Salman Alghamdi (8):
staging: rtl8723bs: fix buffer over-read in rtw_update_protection
staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length
subtraction
staging: rtl8723bs: rtw_mlme: wrap lines exceeding 100 columns
staging: rtl8723bs: rtw_mlme: wrap rtw_sitesurvey_cmd condition
staging: rtl8723bs: rtw_mlme: extract local variables for long
expressions
staging: rtl8723bs: rtw_mlme: remove dead commented-out code
staging: rtl8723bs: rtw_mlme: consolidate capability comparisons lines
staging: rtl8723bs: rtw_mlme: add blank line for readability
drivers/staging/rtl8723bs/core/rtw_mlme.c | 276 ++++++++++++++--------
1 file changed, 183 insertions(+), 93 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-05-04 9:35 ` Greg KH 2026-04-28 16:44 ` [PATCH v6 2/8] staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length subtraction Salman Alghamdi ` (7 subsequent siblings) 8 siblings, 1 reply; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel, stable rtw_update_protection() is called with a pointer offset into the ies buffer but the full ie_length is passed, causing a potential buffer over-read. Fixes: e945c43df60b ("Staging: rtl8723bs: Delete dead code from update_current_network()") Fixes: d3fcee1b78a5 ("staging: rtl8723bs: fix camel case in struct wlan_bssid_ex") Reported-by: Luka Gejak <luka.gejak@linux.dev> Closes: https://lore.kernel.org/linux-staging/DI2H39EAAFBZ.3KI5NWN02AQ2S@linux.dev Cc: stable@vger.kernel.org Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index ddfc56f0253d..268f294528e6 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -464,8 +464,11 @@ static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex if (check_fwstate(pmlmepriv, _FW_LINKED) && (is_same_network(&pmlmepriv->cur_network.network, pnetwork, 0))) { update_network(&pmlmepriv->cur_network.network, pnetwork, adapter, true); + if (pmlmepriv->cur_network.network.ie_length < sizeof(struct ndis_802_11_fix_ie)) + return; + rtw_update_protection(adapter, (pmlmepriv->cur_network.network.ies) + sizeof(struct ndis_802_11_fix_ie), - pmlmepriv->cur_network.network.ie_length); + pmlmepriv->cur_network.network.ie_length - sizeof(struct ndis_802_11_fix_ie)); } } @@ -1072,8 +1075,11 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_net break; } + if (cur_network->network.ie_length < sizeof(struct ndis_802_11_fix_ie)) + return; + rtw_update_protection(padapter, (cur_network->network.ies) + sizeof(struct ndis_802_11_fix_ie), - (cur_network->network.ie_length)); + (cur_network->network.ie_length - sizeof(struct ndis_802_11_fix_ie))); rtw_update_ht_cap(padapter, cur_network->network.ies, cur_network->network.ie_length, (u8) cur_network->network.configuration.ds_config); } -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection 2026-04-28 16:44 ` [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection Salman Alghamdi @ 2026-05-04 9:35 ` Greg KH 0 siblings, 0 replies; 13+ messages in thread From: Greg KH @ 2026-05-04 9:35 UTC (permalink / raw) To: Salman Alghamdi Cc: luka.gejak, straube.linux, linux-staging, linux-kernel, stable On Tue, Apr 28, 2026 at 07:44:31PM +0300, Salman Alghamdi wrote: > rtw_update_protection() is called with a pointer offset into the > ies buffer but the full ie_length is passed, causing a potential > buffer over-read. > > Fixes: e945c43df60b ("Staging: rtl8723bs: Delete dead code from update_current_network()") > Fixes: d3fcee1b78a5 ("staging: rtl8723bs: fix camel case in struct wlan_bssid_ex") > Reported-by: Luka Gejak <luka.gejak@linux.dev> > Closes: https://lore.kernel.org/linux-staging/DI2H39EAAFBZ.3KI5NWN02AQ2S@linux.dev > Cc: stable@vger.kernel.org > Signed-off-by: Salman Alghamdi <me@cipherat.com> > --- > drivers/staging/rtl8723bs/core/rtw_mlme.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) You should not mix patches for the current release (i.e. this one), with patches for the next release (i.e. the rest of the patches in this series), as that means I can't take the full series for either :( Please break this up into two different sets of patches and resend them that way. thanks, greg k-h ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v6 2/8] staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length subtraction 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 3/8] staging: rtl8723bs: rtw_mlme: wrap lines exceeding 100 columns Salman Alghamdi ` (6 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Add guards to ensure ie_length is large enough before subtracting fixed IE offsets to prevent unsigned integer underflow. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index 268f294528e6..9f21a2226dbd 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -604,6 +604,8 @@ static bool rtw_is_desired_network(struct adapter *adapter, struct wlan_network privacy = pnetwork->network.privacy; if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) { + if (pnetwork->network.ie_length < _FIXED_IE_LENGTH_) + return false; if (rtw_get_wps_ie(pnetwork->network.ies + _FIXED_IE_LENGTH_, pnetwork->network.ie_length - _FIXED_IE_LENGTH_, NULL, &wps_ielen)) return true; else @@ -617,11 +619,15 @@ static bool rtw_is_desired_network(struct adapter *adapter, struct wlan_network bselected = false; if (psecuritypriv->ndisauthtype == Ndis802_11AuthModeWPA2PSK) { - p = rtw_get_ie(pnetwork->network.ies + _BEACON_IE_OFFSET_, WLAN_EID_RSN, &ie_len, (pnetwork->network.ie_length - _BEACON_IE_OFFSET_)); - if (p && ie_len > 0) - bselected = true; - else + if (pnetwork->network.ie_length < _BEACON_IE_OFFSET_) { bselected = false; + } else { + p = rtw_get_ie(pnetwork->network.ies + _BEACON_IE_OFFSET_, WLAN_EID_RSN, &ie_len, (pnetwork->network.ie_length - _BEACON_IE_OFFSET_)); + if (p && ie_len > 0) + bselected = true; + else + bselected = false; + } } } -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v6 3/8] staging: rtl8723bs: rtw_mlme: wrap lines exceeding 100 columns 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 2/8] staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length subtraction Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 4/8] staging: rtl8723bs: rtw_mlme: wrap rtw_sitesurvey_cmd condition Salman Alghamdi ` (5 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Wrap long lines to bring them within the 100 column limit. No functional changes. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 205 +++++++++++++++------- 1 file changed, 142 insertions(+), 63 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index 9f21a2226dbd..a35d726b803c 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -52,7 +52,10 @@ int rtw_init_mlme_priv(struct adapter *padapter) pmlmepriv->pscanned = NULL; pmlmepriv->fw_state = WIFI_STATION_STATE; /* Must sync with rtw_wdev_alloc() */ pmlmepriv->cur_network.network.infrastructure_mode = Ndis802_11AutoUnknown; - pmlmepriv->scan_mode = SCAN_ACTIVE;/* 1: active, 0: passive. Maybe someday we should rename this varable to "active_mode" (Jeff) */ + /* 1: active, 0: passive. Maybe someday we should rename this variable + * to "active_mode" (Jeff) + */ + pmlmepriv->scan_mode = SCAN_ACTIVE; spin_lock_init(&pmlmepriv->lock); INIT_LIST_HEAD(&pmlmepriv->free_bss_pool.queue); @@ -125,7 +128,8 @@ void rtw_free_mlme_priv_ie_data(struct mlme_priv *pmlmepriv) rtw_free_mlme_ie_data(&pmlmepriv->p2p_beacon_ie, &pmlmepriv->p2p_beacon_ie_len); rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_req_ie, &pmlmepriv->p2p_probe_req_ie_len); rtw_free_mlme_ie_data(&pmlmepriv->p2p_probe_resp_ie, &pmlmepriv->p2p_probe_resp_ie_len); - rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, &pmlmepriv->p2p_go_probe_resp_ie_len); + rtw_free_mlme_ie_data(&pmlmepriv->p2p_go_probe_resp_ie, + &pmlmepriv->p2p_go_probe_resp_ie_len); rtw_free_mlme_ie_data(&pmlmepriv->p2p_assoc_req_ie, &pmlmepriv->p2p_assoc_req_ie_len); } @@ -369,7 +373,8 @@ int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst, u8 fea (d_cap & WLAN_CAPABILITY_ESS)); } -struct wlan_network *_rtw_find_same_network(struct __queue *scanned_queue, struct wlan_network *network) +struct wlan_network *_rtw_find_same_network(struct __queue *scanned_queue, + struct wlan_network *network) { struct list_head *phead, *plist; struct wlan_network *found = NULL; @@ -420,7 +425,8 @@ void update_network(struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src, long rssi_final; /* The rule below is 1/5 for sample value, 4/5 for history value */ - if (check_fwstate(&padapter->mlmepriv, _FW_LINKED) && is_same_network(&padapter->mlmepriv.cur_network.network, src, 0)) { + if (check_fwstate(&padapter->mlmepriv, _FW_LINKED) && + is_same_network(&padapter->mlmepriv.cur_network.network, src, 0)) { /* Take the recvpriv's value for the connected AP*/ ss_final = padapter->recvpriv.signal_strength; sq_final = padapter->recvpriv.signal_qual; @@ -431,11 +437,15 @@ void update_network(struct wlan_bssid_ex *dst, struct wlan_bssid_ex *src, rssi_final = rssi_ori; } else { if (sq_smp != 101) { /* from the right channel */ - ss_final = ((u32)(src->phy_info.signal_strength) + (u32)(dst->phy_info.signal_strength) * 4) / 5; - sq_final = ((u32)(src->phy_info.signal_quality) + (u32)(dst->phy_info.signal_quality) * 4) / 5; + ss_final = ((u32)(src->phy_info.signal_strength) + + (u32)(dst->phy_info.signal_strength) * 4) / 5; + sq_final = ((u32)(src->phy_info.signal_quality) + + (u32)(dst->phy_info.signal_quality) * 4) / 5; rssi_final = (src->rssi + dst->rssi * 4) / 5; } else { - /* bss info not receiving from the right channel, use the original RX signal infos */ + /* bss info not receiving from the right channel, + * use the original RX signal infos + */ ss_final = dst->phy_info.signal_strength; sq_final = dst->phy_info.signal_quality; rssi_final = dst->rssi; @@ -462,7 +472,8 @@ static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex &pmlmepriv->cur_network.network, &pmlmepriv->cur_network.network); - if (check_fwstate(pmlmepriv, _FW_LINKED) && (is_same_network(&pmlmepriv->cur_network.network, pnetwork, 0))) { + if (check_fwstate(pmlmepriv, _FW_LINKED) && + (is_same_network(&pmlmepriv->cur_network.network, pnetwork, 0))) { update_network(&pmlmepriv->cur_network.network, pnetwork, adapter, true); if (pmlmepriv->cur_network.network.ie_length < sizeof(struct ndis_802_11_fix_ie)) return; @@ -606,7 +617,9 @@ static bool rtw_is_desired_network(struct adapter *adapter, struct wlan_network if (check_fwstate(pmlmepriv, WIFI_UNDER_WPS)) { if (pnetwork->network.ie_length < _FIXED_IE_LENGTH_) return false; - if (rtw_get_wps_ie(pnetwork->network.ies + _FIXED_IE_LENGTH_, pnetwork->network.ie_length - _FIXED_IE_LENGTH_, NULL, &wps_ielen)) + if (rtw_get_wps_ie(pnetwork->network.ies + _FIXED_IE_LENGTH_, + pnetwork->network.ie_length - _FIXED_IE_LENGTH_, + NULL, &wps_ielen)) return true; else return false; @@ -622,7 +635,9 @@ static bool rtw_is_desired_network(struct adapter *adapter, struct wlan_network if (pnetwork->network.ie_length < _BEACON_IE_OFFSET_) { bselected = false; } else { - p = rtw_get_ie(pnetwork->network.ies + _BEACON_IE_OFFSET_, WLAN_EID_RSN, &ie_len, (pnetwork->network.ie_length - _BEACON_IE_OFFSET_)); + p = rtw_get_ie(pnetwork->network.ies + _BEACON_IE_OFFSET_, + WLAN_EID_RSN, &ie_len, + (pnetwork->network.ie_length - _BEACON_IE_OFFSET_)); if (p && ie_len > 0) bselected = true; else @@ -663,12 +678,14 @@ void rtw_survey_event_callback(struct adapter *adapter, u8 *pbuf) /* update IBSS_network 's timestamp */ if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE)) { - if (!memcmp(&pmlmepriv->cur_network.network.mac_address, pnetwork->mac_address, ETH_ALEN)) { + if (!memcmp(&pmlmepriv->cur_network.network.mac_address, + pnetwork->mac_address, ETH_ALEN)) { struct wlan_network *ibss_wlan = NULL; memcpy(pmlmepriv->cur_network.network.ies, pnetwork->ies, 8); spin_lock_bh(&pmlmepriv->scanned_queue.lock); - ibss_wlan = rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->mac_address); + ibss_wlan = rtw_find_network(&pmlmepriv->scanned_queue, + pnetwork->mac_address); if (ibss_wlan) { memcpy(ibss_wlan->network.ies, pnetwork->ies, 8); spin_unlock_bh(&pmlmepriv->scanned_queue.lock); @@ -722,10 +739,13 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) struct wlan_bssid_ex *pdev_network = &adapter->registrypriv.dev_network; u8 *pibss = adapter->registrypriv.dev_network.mac_address; - /* pmlmepriv->fw_state ^= _FW_UNDER_SURVEY;because don't set assoc_timer */ + /* pmlmepriv->fw_state ^= _FW_UNDER_SURVEY; + * because don't set assoc_timer + */ _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY); - memcpy(&pdev_network->ssid, &pmlmepriv->assoc_ssid, sizeof(struct ndis_802_11_ssid)); + memcpy(&pdev_network->ssid, &pmlmepriv->assoc_ssid, + sizeof(struct ndis_802_11_ssid)); rtw_update_registrypriv_dev_network(adapter); rtw_generate_random_ibss(pibss); @@ -957,7 +977,8 @@ void rtw_scan_abort(struct adapter *adapter) pmlmeext->scan_abort = false; } -static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, struct wlan_network *pnetwork) +static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, + struct wlan_network *pnetwork) { int i; struct sta_info *bmc_sta, *psta = NULL; @@ -1014,7 +1035,9 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, str } /* for A-MPDU Rx reordering buffer control for bmc_sta & sta_info */ - /* if A-MPDU Rx is enabled, resetting rx_ordering_ctrl wstart_b(indicate_seq) to default value = 0xffff */ + /* if A-MPDU Rx is enabled, resetting rx_ordering_ctrl + * wstart_b(indicate_seq) to default value = 0xffff + */ /* todo: check if AP can send A-MPDU packets */ for (i = 0; i < 16 ; i++) { preorder_ctrl = &psta->recvreorder_ctrl[i]; @@ -1031,7 +1054,8 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, str preorder_ctrl->enable = false; preorder_ctrl->indicate_seq = 0xffff; preorder_ctrl->wend_b = 0xffff; - preorder_ctrl->wsize_b = 64;/* max_ampdu_sz;ex. 32(kbytes) -> wsize_b =32 */ + /* max_ampdu_sz;ex. 32(kbytes) -> wsize_b =32 */ + preorder_ctrl->wsize_b = 64; } } } @@ -1041,7 +1065,9 @@ static struct sta_info *rtw_joinbss_update_stainfo(struct adapter *padapter, str /* pnetwork : returns from rtw_joinbss_event_callback */ /* ptarget_wlan: found from scanned_queue */ -static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_network *ptarget_wlan, struct wlan_network *pnetwork) +static void rtw_joinbss_update_network(struct adapter *padapter, + struct wlan_network *ptarget_wlan, + struct wlan_network *pnetwork) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct wlan_network *cur_network = &pmlmepriv->cur_network; @@ -1058,7 +1084,9 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_net padapter->recvpriv.signal_strength = ptarget_wlan->network.phy_info.signal_strength; padapter->recvpriv.signal_qual = ptarget_wlan->network.phy_info.signal_quality; - /* the ptarget_wlan->network.rssi is raw data, we use ptarget_wlan->network.phy_info.signal_strength instead (has scaled) */ + /* the ptarget_wlan->network.rssi is raw data, we use + * ptarget_wlan->network.phy_info.signal_strength instead (has scaled) + */ padapter->recvpriv.rssi = translate_percentage_to_dbm(ptarget_wlan->network.phy_info.signal_strength); rtw_set_signal_stat_timer(&padapter->recvpriv); @@ -1084,10 +1112,12 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_net if (cur_network->network.ie_length < sizeof(struct ndis_802_11_fix_ie)) return; - rtw_update_protection(padapter, (cur_network->network.ies) + sizeof(struct ndis_802_11_fix_ie), - (cur_network->network.ie_length - sizeof(struct ndis_802_11_fix_ie))); + rtw_update_protection(padapter, + (cur_network->network.ies) + sizeof(struct ndis_802_11_fix_ie), + (cur_network->network.ie_length - sizeof(struct ndis_802_11_fix_ie))); - rtw_update_ht_cap(padapter, cur_network->network.ies, cur_network->network.ie_length, (u8) cur_network->network.configuration.ds_config); + rtw_update_ht_cap(padapter, cur_network->network.ies, cur_network->network.ie_length, + (u8)cur_network->network.configuration.ds_config); } static struct rt_pmkid_list backupPMKIDList[NUM_PMKID_CACHE]; @@ -1107,9 +1137,12 @@ void rtw_reset_securitypriv(struct adapter *adapter) /* We have to backup the PMK information for WiFi PMK Caching test item. */ /* */ /* Backup the btkip_countermeasure information. */ - /* When the countermeasure is trigger, the driver have to disconnect with AP for 60 seconds. */ + /* When the countermeasure is trigger, the driver have + * to disconnect with AP for 60 seconds. + */ - memcpy(&backupPMKIDList[0], &adapter->securitypriv.PMKIDList[0], sizeof(struct rt_pmkid_list) * NUM_PMKID_CACHE); + memcpy(&backupPMKIDList[0], &adapter->securitypriv.PMKIDList[0], + sizeof(struct rt_pmkid_list) * NUM_PMKID_CACHE); backupPMKIDIndex = adapter->securitypriv.PMKIDIndex; backupTKIPCountermeasure = adapter->securitypriv.btkip_countermeasure; backupTKIPcountermeasure_time = adapter->securitypriv.btkip_countermeasure_time; @@ -1120,8 +1153,11 @@ void rtw_reset_securitypriv(struct adapter *adapter) memset((unsigned char *)&adapter->securitypriv, 0, sizeof(struct security_priv)); /* Added by Albert 2009/02/18 */ - /* Restore the PMK information to securitypriv structure for the following connection. */ - memcpy(&adapter->securitypriv.PMKIDList[0], &backupPMKIDList[0], sizeof(struct rt_pmkid_list) * NUM_PMKID_CACHE); + /* Restore the PMK information to securitypriv structure + * for the following connection. + */ + memcpy(&adapter->securitypriv.PMKIDList[0], &backupPMKIDList[0], + sizeof(struct rt_pmkid_list) * NUM_PMKID_CACHE); adapter->securitypriv.PMKIDIndex = backupPMKIDIndex; adapter->securitypriv.btkip_countermeasure = backupTKIPCountermeasure; adapter->securitypriv.btkip_countermeasure_time = backupTKIPcountermeasure_time; @@ -1153,9 +1189,13 @@ void rtw_reset_securitypriv(struct adapter *adapter) /* Notes: the function could be > passive_level (the same context as Rx tasklet) */ /* pnetwork : returns from rtw_joinbss_event_callback */ /* ptarget_wlan: found from scanned_queue */ -/* if join_res > 0, for (fw_state ==WIFI_STATION_STATE), we check if "ptarget_sta" & "ptarget_wlan" exist. */ +/* if join_res > 0, for (fw_state ==WIFI_STATION_STATE), we check + * if "ptarget_sta" & "ptarget_wlan" exist. + */ /* if join_res > 0, for (fw_state ==WIFI_ADHOC_STATE), we only check if "ptarget_wlan" exist. */ -/* if join_res > 0, update "cur_network->network" from "pnetwork->network" if (ptarget_wlan != NULL). */ +/* if join_res > 0, update "cur_network->network" from + * "pnetwork->network" if (ptarget_wlan != NULL). + */ /* */ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) { @@ -1167,7 +1207,8 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) struct wlan_network *pcur_wlan = NULL, *ptarget_wlan = NULL; unsigned int the_same_macaddr = false; - the_same_macaddr = !memcmp(pnetwork->network.mac_address, cur_network->network.mac_address, ETH_ALEN); + the_same_macaddr = !memcmp(pnetwork->network.mac_address, + cur_network->network.mac_address, ETH_ALEN); pnetwork->network.length = get_wlan_bssid_ex_sz(&pnetwork->network); if (pnetwork->network.length > sizeof(struct wlan_bssid_ex)) @@ -1207,9 +1248,11 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) /* s1. find ptarget_wlan */ if (check_fwstate(pmlmepriv, _FW_LINKED)) { if (the_same_macaddr) { - ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.mac_address); + ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, + cur_network->network.mac_address); } else { - pcur_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.mac_address); + pcur_wlan = rtw_find_network(&pmlmepriv->scanned_queue, + cur_network->network.mac_address); if (pcur_wlan) pcur_wlan->fixed = false; @@ -1217,7 +1260,8 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) if (pcur_sta) rtw_free_stainfo(adapter, pcur_sta); - ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, pnetwork->network.mac_address); + ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, + pnetwork->network.mac_address); if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { if (ptarget_wlan) ptarget_wlan->fixed = true; @@ -1242,7 +1286,9 @@ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) rtw_joinbss_update_network(adapter, ptarget_wlan, pnetwork); - /* s3. find ptarget_sta & update ptarget_sta after update cur_network only for station mode */ + /* s3. find ptarget_sta & update ptarget_sta after update + * cur_network only for station mode + */ if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { ptarget_sta = rtw_joinbss_update_stainfo(adapter, pnetwork); if (!ptarget_sta) { @@ -1310,7 +1356,8 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf) /* report to upper layer */ spin_lock_bh(&psta->lock); if (psta->passoc_req && psta->assoc_req_len > 0) { - passoc_req = kmemdup(psta->passoc_req, psta->assoc_req_len, GFP_ATOMIC); + passoc_req = kmemdup(psta->passoc_req, + psta->assoc_req_len, GFP_ATOMIC); if (passoc_req) { assoc_req_len = psta->assoc_req_len; @@ -1335,7 +1382,10 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf) if (psta) { /* the sta have been in sta_info_queue => do nothing */ - return; /* between drv has received this event before and fw have not yet to set key to CAM_ENTRY) */ + /* between drv has received this event before and + * fw have not yet to set key to CAM_ENTRY) + */ + return; } psta = rtw_alloc_stainfo(&adapter->stapriv, pstassoc->macaddr); @@ -1362,7 +1412,8 @@ void rtw_stassoc_event_callback(struct adapter *adapter, u8 *pbuf) check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) { if (adapter->stapriv.asoc_sta_count == 2) { spin_lock_bh(&pmlmepriv->scanned_queue.lock); - ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, cur_network->network.mac_address); + ptarget_wlan = rtw_find_network(&pmlmepriv->scanned_queue, + cur_network->network.mac_address); pmlmepriv->cur_network_scanned = ptarget_wlan; if (ptarget_wlan) ptarget_wlan->fixed = true; @@ -1419,16 +1470,19 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf) if (adapter->registrypriv.wifi_spec == 1) { roam = false; - } else if (reason == WLAN_REASON_EXPIRATION_CHK && rtw_chk_roam_flags(adapter, RTW_ROAM_ON_EXPIRED)) { + } else if (reason == WLAN_REASON_EXPIRATION_CHK && + rtw_chk_roam_flags(adapter, RTW_ROAM_ON_EXPIRED)) { roam = true; - } else if (reason == WLAN_REASON_ACTIVE_ROAM && rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) { + } else if (reason == WLAN_REASON_ACTIVE_ROAM && + rtw_chk_roam_flags(adapter, RTW_ROAM_ACTIVE)) { roam = true; roam_target = pmlmepriv->roam_network; } if (roam) { if (rtw_to_roam(adapter) > 0) - rtw_dec_to_roam(adapter); /* this stadel_event is caused by roaming, decrease to_roam */ + /* this stadel_event is caused by roaming, decrease to_roam */ + rtw_dec_to_roam(adapter); else if (rtw_to_roam(adapter) == 0) rtw_set_to_roam(adapter, adapter->registrypriv.max_roaming_times); } else { @@ -1442,7 +1496,8 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf) spin_lock_bh(&pmlmepriv->scanned_queue.lock); /* remove the network entry in scanned_queue */ - pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.mac_address); + pwlan = rtw_find_network(&pmlmepriv->scanned_queue, + tgt_network->network.mac_address); if (pwlan) { pwlan->fixed = false; rtw_free_network_nolock(adapter, pwlan); @@ -1456,12 +1511,14 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf) check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) { rtw_free_stainfo(adapter, psta); - if (adapter->stapriv.asoc_sta_count == 1) {/* a sta + bc/mc_stainfo (not Ibss_stainfo) */ + /* a sta + bc/mc_stainfo (not Ibss_stainfo) */ + if (adapter->stapriv.asoc_sta_count == 1) { u8 ret = _SUCCESS; spin_lock_bh(&pmlmepriv->scanned_queue.lock); /* free old ibss network */ - pwlan = rtw_find_network(&pmlmepriv->scanned_queue, tgt_network->network.mac_address); + pwlan = rtw_find_network(&pmlmepriv->scanned_queue, + tgt_network->network.mac_address); if (pwlan) { pwlan->fixed = false; rtw_free_network_nolock(adapter, pwlan); @@ -1471,9 +1528,11 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf) pdev_network = &adapter->registrypriv.dev_network; pibss = adapter->registrypriv.dev_network.mac_address; - memcpy(pdev_network, &tgt_network->network, get_wlan_bssid_ex_sz(&tgt_network->network)); + memcpy(pdev_network, &tgt_network->network, + get_wlan_bssid_ex_sz(&tgt_network->network)); - memcpy(&pdev_network->ssid, &pmlmepriv->assoc_ssid, sizeof(struct ndis_802_11_ssid)); + memcpy(&pdev_network->ssid, &pmlmepriv->assoc_ssid, + sizeof(struct ndis_802_11_ssid)); rtw_update_registrypriv_dev_network(adapter); @@ -1544,7 +1603,9 @@ void _rtw_join_timeout_handler(struct timer_list *t) rtw_indicate_disconnect(adapter); free_scanqueue(pmlmepriv);/* */ - /* indicate disconnect for the case that join_timeout and check_fwstate != FW_LINKED */ + /* indicate disconnect for the case that join_timeout + * and check_fwstate != FW_LINKED + */ rtw_cfg80211_indicate_disconnect(adapter); } @@ -1593,8 +1654,8 @@ static void rtw_auto_scan_handler(struct adapter *padapter) rtw_mlme_reset_auto_scan_int(padapter); - if (pmlmepriv->auto_scan_int_ms != 0 - && jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time) > pmlmepriv->auto_scan_int_ms) { + if (pmlmepriv->auto_scan_int_ms != 0 && + jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time) > pmlmepriv->auto_scan_int_ms) { if (!padapter->registrypriv.wifi_spec) { if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY | _FW_UNDER_LINKING)) goto exit; @@ -1636,7 +1697,9 @@ void rtw_dynamic_check_timer_handler(struct adapter *adapter) /* rtw_lps_ctrl_wk_cmd(adapter, LPS_CTRL_ENTER, 1); */ rtw_hal_dm_watchdog_in_lps(adapter); } else { - /* call rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1) in traffic_status_watchdog() */ + /* call rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1) + * in traffic_status_watchdog() + */ } } else { @@ -1769,8 +1832,9 @@ static int rtw_check_join_candidate(struct mlme_priv *mlme /* check ssid, if needed */ if (mlme->assoc_ssid.ssid[0] && mlme->assoc_ssid.ssid_length) { - if (competitor->network.ssid.ssid_length != mlme->assoc_ssid.ssid_length - || memcmp(competitor->network.ssid.ssid, mlme->assoc_ssid.ssid, mlme->assoc_ssid.ssid_length) + if (competitor->network.ssid.ssid_length != mlme->assoc_ssid.ssid_length || + memcmp(competitor->network.ssid.ssid, mlme->assoc_ssid.ssid, + mlme->assoc_ssid.ssid_length) ) goto exit; } @@ -1888,7 +1952,8 @@ signed int rtw_set_auth(struct adapter *adapter, struct security_priv *psecurity return res; } -signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecuritypriv, signed int keyid, u8 set_tx, bool enqueue) +signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecuritypriv, + signed int keyid, u8 set_tx, bool enqueue) { u8 keylen; struct cmd_obj *pcmd; @@ -1963,7 +2028,8 @@ signed int rtw_set_key(struct adapter *adapter, struct security_priv *psecurityp } /* adjust ies for rtw_joinbss_cmd in WMM */ -int rtw_restruct_wmm_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, uint in_len, uint initial_out_len) +int rtw_restruct_wmm_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, + uint in_len, uint initial_out_len) { unsigned int ielength = 0; unsigned int i, j; @@ -2097,7 +2163,8 @@ signed int rtw_restruct_sec_ie(struct adapter *adapter, u8 *in_ie, u8 *out_ie, u ielength += psecuritypriv->wps_ie_len; } else if ((authmode == WLAN_EID_VENDOR_SPECIFIC) || (authmode == WLAN_EID_RSN)) { /* copy RSN or SSN */ - memcpy(&out_ie[ielength], &psecuritypriv->supplicant_ie[0], psecuritypriv->supplicant_ie[1] + 2); + memcpy(&out_ie[ielength], &psecuritypriv->supplicant_ie[0], + psecuritypriv->supplicant_ie[1] + 2); ielength += psecuritypriv->supplicant_ie[1] + 2; rtw_report_sec_ie(adapter, authmode, psecuritypriv->supplicant_ie); } @@ -2135,7 +2202,8 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter) struct security_priv *psecuritypriv = &adapter->securitypriv; struct wlan_network *cur_network = &adapter->mlmepriv.cur_network; - pdev_network->privacy = (psecuritypriv->dot11PrivacyAlgrthm > 0 ? 1 : 0) ; /* adhoc no 802.1x */ + /* adhoc no 802.1x */ + pdev_network->privacy = (psecuritypriv->dot11PrivacyAlgrthm > 0 ? 1 : 0); pdev_network->rssi = 0; @@ -2165,14 +2233,18 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter) /* 1. Supported rates */ /* 2. IE */ - /* rtw_set_supported_rate(pdev_network->supported_rates, pregistrypriv->wireless_mode) ; will be called in rtw_generate_ie */ + /* rtw_set_supported_rate(pdev_network->supported_rates, pregistrypriv->wireless_mode); + * will be called in rtw_generate_ie + */ sz = rtw_generate_ie(pregistrypriv); pdev_network->ie_length = sz; pdev_network->length = get_wlan_bssid_ex_sz((struct wlan_bssid_ex *)pdev_network); - /* notes: translate ie_length & length after assign the length to cmdsz in createbss_cmd(); */ + /* notes: translate ie_length & length after assign the + * length to cmdsz in createbss_cmd(); + */ /* pdev_network->ie_length = cpu_to_le32(sz); */ } @@ -2184,7 +2256,9 @@ void rtw_joinbss_reset(struct adapter *padapter) struct ht_priv *phtpriv = &pmlmepriv->htpriv; - /* todo: if you want to do something io/reg/hw setting before join_bss, please add code here */ + /* todo: if you want to do something io/reg/hw setting before + * join_bss, please add code here + */ pmlmepriv->num_FortyMHzIntolerant = 0; @@ -2274,7 +2348,8 @@ void rtw_build_wmm_ie_ht(struct adapter *padapter, u8 *out_ie, uint *pout_len) } /* the function is >= passive_level */ -unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ie, uint in_len, uint *pout_len, u8 channel) +unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ie, + uint in_len, uint *pout_len, u8 channel) { u32 ielen, out_len; enum ieee80211_max_ampdu_length_exp max_rx_ampdu_factor; @@ -2345,7 +2420,7 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_SM_PS); if (TEST_FLAG(phtpriv->stbc_cap, STBC_HT_ENABLE_RX)) { - if ((channel <= 14 && pregistrypriv->rx_stbc == 0x1) || /* enable for 2.4GHz */ + if ((channel <= 14 && pregistrypriv->rx_stbc == 0x1) || /* enable for 2.4GHz */ (pregistrypriv->wifi_spec == 1)) stbc_rx_enable = 1; } @@ -2355,7 +2430,8 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ /* update default supported_mcs_set */ if (stbc_rx_enable) - ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_1R);/* RX STBC One spatial stream */ + /* RX STBC One spatial stream */ + ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_1R); set_mcs_rate_by_mask(ht_capie.mcs.rx_mask, MCS_RATE_1R); @@ -2421,7 +2497,8 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channe /* check Max Rx A-MPDU Size */ len = 0; - p = rtw_get_ie(pie + sizeof(struct ndis_802_11_fix_ie), WLAN_EID_HT_CAPABILITY, &len, ie_len - sizeof(struct ndis_802_11_fix_ie)); + p = rtw_get_ie(pie + sizeof(struct ndis_802_11_fix_ie), WLAN_EID_HT_CAPABILITY, + &len, ie_len - sizeof(struct ndis_802_11_fix_ie)); if (p && len > 0) { pht_capie = (struct ieee80211_ht_cap *)(p + 2); max_ampdu_sz = (pht_capie->ampdu_params_info & IEEE80211_HT_CAP_AMPDU_FACTOR); @@ -2431,7 +2508,8 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channe } len = 0; - p = rtw_get_ie(pie + sizeof(struct ndis_802_11_fix_ie), WLAN_EID_HT_OPERATION, &len, ie_len - sizeof(struct ndis_802_11_fix_ie)); + p = rtw_get_ie(pie + sizeof(struct ndis_802_11_fix_ie), WLAN_EID_HT_OPERATION, + &len, ie_len - sizeof(struct ndis_802_11_fix_ie)); if (p && len > 0) { /* todo: */ } @@ -2564,7 +2642,8 @@ void _rtw_roaming(struct adapter *padapter, struct wlan_network *tgt_network) struct wlan_network *cur_network = &pmlmepriv->cur_network; if (rtw_to_roam(padapter) > 0) { - memcpy(&pmlmepriv->assoc_ssid, &cur_network->network.ssid, sizeof(struct ndis_802_11_ssid)); + memcpy(&pmlmepriv->assoc_ssid, &cur_network->network.ssid, + sizeof(struct ndis_802_11_ssid)); pmlmepriv->assoc_by_bssid = false; -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v6 4/8] staging: rtl8723bs: rtw_mlme: wrap rtw_sitesurvey_cmd condition 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi ` (2 preceding siblings ...) 2026-04-28 16:44 ` [PATCH v6 3/8] staging: rtl8723bs: rtw_mlme: wrap lines exceeding 100 columns Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 5/8] staging: rtl8723bs: rtw_mlme: extract local variables for long expressions Salman Alghamdi ` (4 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Inline rtw_sitesurvey_cmd() directly in the if condition to reduce line length. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index a35d726b803c..caaad38dd790 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -772,9 +772,9 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) rtw_indicate_connect(adapter); } else { if (rtw_to_roam(adapter) != 0) { - if (rtw_dec_to_roam(adapter) == 0 - || _SUCCESS != rtw_sitesurvey_cmd(adapter, &pmlmepriv->assoc_ssid, 1, NULL, 0) - ) { + if (rtw_dec_to_roam(adapter) == 0 || + rtw_sitesurvey_cmd(adapter, &pmlmepriv->assoc_ssid, + 1, NULL, 0) != _SUCCESS) { rtw_set_to_roam(adapter, 0); rtw_free_assoc_resources(adapter, 1); rtw_indicate_disconnect(adapter); -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v6 5/8] staging: rtl8723bs: rtw_mlme: extract local variables for long expressions 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi ` (3 preceding siblings ...) 2026-04-28 16:44 ` [PATCH v6 4/8] staging: rtl8723bs: rtw_mlme: wrap rtw_sitesurvey_cmd condition Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 6/8] staging: rtl8723bs: rtw_mlme: remove dead commented-out code Salman Alghamdi ` (3 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Extract local variables to shorten lines that cannot be wrapped cleanly. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 47 +++++++++++++++-------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index caaad38dd790..9582d9704393 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -474,12 +474,16 @@ static void update_current_network(struct adapter *adapter, struct wlan_bssid_ex if (check_fwstate(pmlmepriv, _FW_LINKED) && (is_same_network(&pmlmepriv->cur_network.network, pnetwork, 0))) { + u32 ie_len; + u8 *ie; + update_network(&pmlmepriv->cur_network.network, pnetwork, adapter, true); - if (pmlmepriv->cur_network.network.ie_length < sizeof(struct ndis_802_11_fix_ie)) + ie_len = pmlmepriv->cur_network.network.ie_length; + if (ie_len < sizeof(struct ndis_802_11_fix_ie)) return; - rtw_update_protection(adapter, (pmlmepriv->cur_network.network.ies) + sizeof(struct ndis_802_11_fix_ie), - pmlmepriv->cur_network.network.ie_length - sizeof(struct ndis_802_11_fix_ie)); + ie = pmlmepriv->cur_network.network.ies + sizeof(struct ndis_802_11_fix_ie); + rtw_update_protection(adapter, ie, ie_len - sizeof(struct ndis_802_11_fix_ie)); } } @@ -650,7 +654,13 @@ static bool rtw_is_desired_network(struct adapter *adapter, struct wlan_network bselected = false; if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) { - if (pnetwork->network.infrastructure_mode != pmlmepriv->cur_network.network.infrastructure_mode) + enum ndis_802_11_network_infrastructure inf_mode; + enum ndis_802_11_network_infrastructure cur_inf; + + inf_mode = pnetwork->network.infrastructure_mode; + cur_inf = pmlmepriv->cur_network.network.infrastructure_mode; + + if (inf_mode != cur_inf) bselected = false; } @@ -735,9 +745,10 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) if (rtw_select_and_join_from_scanned_queue(pmlmepriv) == _SUCCESS) { _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT); } else { + struct registry_priv *regs = &adapter->registrypriv; + struct wlan_bssid_ex *pdev_network = ®s->dev_network; + u8 *pibss = regs->dev_network.mac_address; u8 ret = _SUCCESS; - struct wlan_bssid_ex *pdev_network = &adapter->registrypriv.dev_network; - u8 *pibss = adapter->registrypriv.dev_network.mac_address; /* pmlmepriv->fw_state ^= _FW_UNDER_SURVEY; * because don't set assoc_timer @@ -792,8 +803,10 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) && check_fwstate(pmlmepriv, _FW_LINKED)) { if (rtw_select_roaming_candidate(pmlmepriv) == _SUCCESS) { - receive_disconnect(adapter, pmlmepriv->cur_network.network.mac_address - , WLAN_REASON_ACTIVE_ROAM); + u8 *mac_addr = pmlmepriv->cur_network.network.mac_address; + + receive_disconnect(adapter, mac_addr, + WLAN_REASON_ACTIVE_ROAM); } } } @@ -1069,6 +1082,7 @@ static void rtw_joinbss_update_network(struct adapter *padapter, struct wlan_network *ptarget_wlan, struct wlan_network *pnetwork) { + u8 signal_strength = ptarget_wlan->network.phy_info.signal_strength; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct wlan_network *cur_network = &pmlmepriv->cur_network; @@ -1082,12 +1096,12 @@ static void rtw_joinbss_update_network(struct adapter *padapter, rtw_set_signal_stat_timer(&padapter->recvpriv); - padapter->recvpriv.signal_strength = ptarget_wlan->network.phy_info.signal_strength; + padapter->recvpriv.signal_strength = signal_strength; padapter->recvpriv.signal_qual = ptarget_wlan->network.phy_info.signal_quality; /* the ptarget_wlan->network.rssi is raw data, we use * ptarget_wlan->network.phy_info.signal_strength instead (has scaled) */ - padapter->recvpriv.rssi = translate_percentage_to_dbm(ptarget_wlan->network.phy_info.signal_strength); + padapter->recvpriv.rssi = translate_percentage_to_dbm(signal_strength); rtw_set_signal_stat_timer(&padapter->recvpriv); @@ -1740,8 +1754,9 @@ void rtw_set_scan_deny(struct adapter *adapter, u32 ms) static int rtw_check_roaming_candidate(struct mlme_priv *mlme , struct wlan_network **candidate, struct wlan_network *competitor) { - int updated = false; struct adapter *adapter = container_of(mlme, struct adapter, mlmepriv); + int updated = false; + long rssi_diff; if (is_same_ess(&competitor->network, &mlme->cur_network.network) == false) goto exit; @@ -1759,7 +1774,8 @@ static int rtw_check_roaming_candidate(struct mlme_priv *mlme if (jiffies_to_msecs(jiffies - competitor->last_scanned) >= mlme->roam_scanr_exp_ms) goto exit; - if (competitor->network.rssi - mlme->cur_network_scanned->network.rssi < mlme->roam_rssi_diff_th) + rssi_diff = competitor->network.rssi - mlme->cur_network_scanned->network.rssi; + if (rssi_diff < mlme->roam_rssi_diff_th) goto exit; if (*candidate && (*candidate)->network.rssi >= competitor->network.rssi) @@ -2133,7 +2149,7 @@ static void rtw_report_sec_ie(struct adapter *adapter, u8 authmode, u8 *sec_ie) wrqu.data.length = p - buff; - wrqu.data.length = (wrqu.data.length < IW_CUSTOM_MAX) ? wrqu.data.length : IW_CUSTOM_MAX; + wrqu.data.length = umin(wrqu.data.length, IW_CUSTOM_MAX); kfree(buff); } @@ -2521,14 +2537,15 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channe if ((cbw40_enable) && (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & BIT(1)) && (pmlmeinfo->HT_info.infos[0] & BIT(2))) { + u8 *mcs_rate = pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate; int i; /* update the MCS set */ for (i = 0; i < 16; i++) - pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i]; + mcs_rate[i] &= pmlmeext->default_supported_mcs_set[i]; /* update the MCS rates */ - set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R); + set_mcs_rate_by_mask(mcs_rate, MCS_RATE_1R); /* switch to the 40M Hz mode according to the AP */ /* pmlmeext->cur_bwmode = CHANNEL_WIDTH_40; */ -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v6 6/8] staging: rtl8723bs: rtw_mlme: remove dead commented-out code 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi ` (4 preceding siblings ...) 2026-04-28 16:44 ` [PATCH v6 5/8] staging: rtl8723bs: rtw_mlme: extract local variables for long expressions Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 7/8] staging: rtl8723bs: rtw_mlme: consolidate capability comparisons lines Salman Alghamdi ` (2 subsequent siblings) 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Remove commented-out code and its associated orphaned comments. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index 9582d9704393..233675f3a045 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -750,9 +750,6 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf) u8 *pibss = regs->dev_network.mac_address; u8 ret = _SUCCESS; - /* pmlmepriv->fw_state ^= _FW_UNDER_SURVEY; - * because don't set assoc_timer - */ _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY); memcpy(&pdev_network->ssid, &pmlmepriv->assoc_ssid, @@ -1707,14 +1704,8 @@ void rtw_dynamic_check_timer_handler(struct adapter *adapter) linked_status_chk(adapter); should_enter_ps = traffic_status_watchdog(adapter, true); - if (should_enter_ps) { - /* rtw_lps_ctrl_wk_cmd(adapter, LPS_CTRL_ENTER, 1); */ + if (should_enter_ps) rtw_hal_dm_watchdog_in_lps(adapter); - } else { - /* call rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_LEAVE, 1) - * in traffic_status_watchdog() - */ - } } else { rtw_dynamic_chk_wk_cmd(adapter); @@ -2249,19 +2240,11 @@ void rtw_update_registrypriv_dev_network(struct adapter *adapter) /* 1. Supported rates */ /* 2. IE */ - /* rtw_set_supported_rate(pdev_network->supported_rates, pregistrypriv->wireless_mode); - * will be called in rtw_generate_ie - */ sz = rtw_generate_ie(pregistrypriv); pdev_network->ie_length = sz; pdev_network->length = get_wlan_bssid_ex_sz((struct wlan_bssid_ex *)pdev_network); - - /* notes: translate ie_length & length after assign the - * length to cmdsz in createbss_cmd(); - */ - /* pdev_network->ie_length = cpu_to_le32(sz); */ } /* the function is at passive_level */ -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v6 7/8] staging: rtl8723bs: rtw_mlme: consolidate capability comparisons lines 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi ` (5 preceding siblings ...) 2026-04-28 16:44 ` [PATCH v6 6/8] staging: rtl8723bs: rtw_mlme: remove dead commented-out code Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 8/8] staging: rtl8723bs: rtw_mlme: add blank line for readability Salman Alghamdi 2026-04-28 17:42 ` [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Luka Gejak 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Place capability comparisons on single lines. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index 233675f3a045..be8b50e8a232 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -367,10 +367,8 @@ int is_same_network(struct wlan_bssid_ex *src, struct wlan_bssid_ex *dst, u8 fea return (src->ssid.ssid_length == dst->ssid.ssid_length) && ((!memcmp(src->mac_address, dst->mac_address, ETH_ALEN))) && ((!memcmp(src->ssid.ssid, dst->ssid.ssid, src->ssid.ssid_length))) && - ((s_cap & WLAN_CAPABILITY_IBSS) == - (d_cap & WLAN_CAPABILITY_IBSS)) && - ((s_cap & WLAN_CAPABILITY_ESS) == - (d_cap & WLAN_CAPABILITY_ESS)); + ((s_cap & WLAN_CAPABILITY_IBSS) == (d_cap & WLAN_CAPABILITY_IBSS)) && + ((s_cap & WLAN_CAPABILITY_ESS) == (d_cap & WLAN_CAPABILITY_ESS)); } struct wlan_network *_rtw_find_same_network(struct __queue *scanned_queue, -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v6 8/8] staging: rtl8723bs: rtw_mlme: add blank line for readability 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi ` (6 preceding siblings ...) 2026-04-28 16:44 ` [PATCH v6 7/8] staging: rtl8723bs: rtw_mlme: consolidate capability comparisons lines Salman Alghamdi @ 2026-04-28 16:44 ` Salman Alghamdi 2026-04-28 17:42 ` [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Luka Gejak 8 siblings, 0 replies; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 16:44 UTC (permalink / raw) To: gregkh; +Cc: luka.gejak, straube.linux, linux-staging, linux-kernel Add a blank line between the WIFI_UNDER_WPS block and the wifi_spec block to improve readability. Signed-off-by: Salman Alghamdi <me@cipherat.com> --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rtl8723bs/core/rtw_mlme.c index be8b50e8a232..0104829ca50a 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -626,6 +626,7 @@ static bool rtw_is_desired_network(struct adapter *adapter, struct wlan_network else return false; } + if (adapter->registrypriv.wifi_spec == 1) { /* for correct flow of 8021X to do.... */ u8 *p = NULL; uint ie_len = 0; -- 2.54.0 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi ` (7 preceding siblings ...) 2026-04-28 16:44 ` [PATCH v6 8/8] staging: rtl8723bs: rtw_mlme: add blank line for readability Salman Alghamdi @ 2026-04-28 17:42 ` Luka Gejak 2026-04-28 18:43 ` Salman Alghamdi 8 siblings, 1 reply; 13+ messages in thread From: Luka Gejak @ 2026-04-28 17:42 UTC (permalink / raw) To: Salman Alghamdi, gregkh Cc: straube.linux, linux-staging, linux-kernel, luka.gejak On April 28, 2026 6:44:30 PM GMT+02:00, Salman Alghamdi <me@cipherat.com> wrote: >This series addresses review feedback on v5. Changes from v5: > >- Fix variable declaration ordering that broke compilation due to > dependency on uninitialized pointer (per Luka Gejak) > >Salman Alghamdi (8): > staging: rtl8723bs: fix buffer over-read in rtw_update_protection > staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length > subtraction > staging: rtl8723bs: rtw_mlme: wrap lines exceeding 100 columns > staging: rtl8723bs: rtw_mlme: wrap rtw_sitesurvey_cmd condition > staging: rtl8723bs: rtw_mlme: extract local variables for long > expressions > staging: rtl8723bs: rtw_mlme: remove dead commented-out code > staging: rtl8723bs: rtw_mlme: consolidate capability comparisons lines > staging: rtl8723bs: rtw_mlme: add blank line for readability > > drivers/staging/rtl8723bs/core/rtw_mlme.c | 276 ++++++++++++++-------- > 1 file changed, 183 insertions(+), 93 deletions(-) > LGTM, so unless Dan has something to add, for the patch series: Reviewed-by: Luka Gejak <luka.gejak@linux.dev> Best regards, Luka Gejak ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues 2026-04-28 17:42 ` [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Luka Gejak @ 2026-04-28 18:43 ` Salman Alghamdi 2026-04-28 19:52 ` Luka Gejak 0 siblings, 1 reply; 13+ messages in thread From: Salman Alghamdi @ 2026-04-28 18:43 UTC (permalink / raw) To: Luka Gejak; +Cc: gregkh, straube.linux, linux-staging, linux-kernel > LGTM, so unless Dan has something to add, for the patch series: > > Reviewed-by: Luka Gejak <luka.gejak@linux.dev> Thank you for your patience and detailed reviews throughout this process. This is my first kernel contribution and your guidance has been invaluable. Looking forward to contributing more! -hopefully fewer silly mistakes :P Kindest regards, Salman Alghamdi ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues 2026-04-28 18:43 ` Salman Alghamdi @ 2026-04-28 19:52 ` Luka Gejak 0 siblings, 0 replies; 13+ messages in thread From: Luka Gejak @ 2026-04-28 19:52 UTC (permalink / raw) To: Salman Alghamdi Cc: gregkh, straube.linux, linux-staging, linux-kernel, luka.gejak On April 28, 2026 8:43:31 PM GMT+02:00, Salman Alghamdi <me@cipherat.com> wrote: >> LGTM, so unless Dan has something to add, for the patch series: >> >> Reviewed-by: Luka Gejak <luka.gejak@linux.dev> > >Thank you for your patience and detailed reviews throughout this process. >This is my first kernel contribution and your guidance has been invaluable. >Looking forward to contributing more! -hopefully fewer silly mistakes :P > >Kindest regards, >Salman Alghamdi > No problem, I'm here if you need any help in the future and feel free to cc me in any future patches. One more thing, silly mistakes are part of the process and you will do them less as time goes by. Hope to see more patches in the future :) Best regards, Luka Gejak ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-05-04 9:35 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-28 16:44 [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 1/8] staging: rtl8723bs: fix buffer over-read in rtw_update_protection Salman Alghamdi 2026-05-04 9:35 ` Greg KH 2026-04-28 16:44 ` [PATCH v6 2/8] staging: rtl8723bs: rtw_mlme: add bounds checks before ie_length subtraction Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 3/8] staging: rtl8723bs: rtw_mlme: wrap lines exceeding 100 columns Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 4/8] staging: rtl8723bs: rtw_mlme: wrap rtw_sitesurvey_cmd condition Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 5/8] staging: rtl8723bs: rtw_mlme: extract local variables for long expressions Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 6/8] staging: rtl8723bs: rtw_mlme: remove dead commented-out code Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 7/8] staging: rtl8723bs: rtw_mlme: consolidate capability comparisons lines Salman Alghamdi 2026-04-28 16:44 ` [PATCH v6 8/8] staging: rtl8723bs: rtw_mlme: add blank line for readability Salman Alghamdi 2026-04-28 17:42 ` [PATCH v6 0/8] staging: rtl8723bs: rtw_mlme: fix long lines and related issues Luka Gejak 2026-04-28 18:43 ` Salman Alghamdi 2026-04-28 19:52 ` Luka Gejak
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox