Skip to contentSkip to conversation

staging: rtl8723bs: fix network selection in rtw_mlme.c

PATCH Superseded Atharva Tiwari 2 participants 2 messages Dec 24, 2024 – Jan 6, 2025 Staging

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 staging: rtl8723bs: fix network selection in rtw_mlme.c

this patch fixes the network selection logic to avoid selecting a network with the same ESSID as the olddest scanned network if it was scanned within the last 500 millisecounds

and please give a specific value for "new enough" on line 481, i have estimated 500 millisecound but inform me if the value needs to be changed

---
Changes since v1:
- Changed the "new enough" value from 1000 millisecounds to 500
- fixed some styling issue

 drivers/staging/rtl8723bs/core/rtw_mlme.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/staging/rtl8723bs/core/rtw_mlme.c +5 -2
index 5ded183aa08c..6604619d1b99 100644
@@ -481,8 +481,11 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t
 		}
 
 		if (rtw_roam_flags(adapter)) {
-			/* TODO: don't select network in the same ess as oldest if it's new enough*/
-		}
+			if (is_same_ess(&pnetwork->network, &oldest->network) &&
+				time_after(pnetwork->last_scanned,
+					(unsigned long)msecs_to_jiffies(500)))
+				continue;
+			}
 
 		if (!oldest || time_after(oldest->last_scanned, pnetwork->last_scanned))
 			oldest = pnetwork;
Signature · 1 line
2.39.5
#1 lore raw
Quoted 3 lines · Atharva Tiwari

this patch fixes the network selection logic to avoid selecting a network with the same ESSID as the olddest scanned network if it was scanned within the last 500 millisecounds

You need to try use proper capitalization and add periods to the end of sentences.

Quoted 4 lines

and please give a specific value for "new enough" on line 481, i have estimated 500 millisecound but inform me if the value needs to be changed

If you don't know then just leave it as-is. Don't just guess. If you have a spec or an expert to consult, that's fine, go ahead and change it in that case. But probably if the answer was really obvious, then someone would already have changed it.

Quoted 15 lines

---
Changes since v1:
- Changed the "new enough" value from 1000 millisecounds to 500
- fixed some styling issue

 drivers/staging/rtl8723bs/core/rtw_mlme.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/staging/rtl8723bs/core/rtw_mlme.c +0 -0
index 5ded183aa08c..6604619d1b99 100644

drivers/staging/rtl8723bs/core/rtw_mlme.c void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t · line 486

Quoted 8 lines
drivers/staging/rtl8723bs/core/rtw_mlme.c +3 -2
@@ -481,8 +481,11 @@ void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t
 		}
 
 		if (rtw_roam_flags(adapter)) {
-			/* TODO: don't select network in the same ess as oldest if it's new enough*/
-		}
+			if (is_same_ess(&pnetwork->network, &oldest->network) &&
+				time_after(pnetwork->last_scanned,
+					(unsigned long)msecs_to_jiffies(500)))

This casting is unnecessary and puzzling.

drivers/staging/rtl8723bs/core/rtw_mlme.c void rtw_update_scanned_network(struct adapter *adapter, struct wlan_bssid_ex *t · line 488

Quoted 2 lines
drivers/staging/rtl8723bs/core/rtw_mlme.c +2 -0
+				continue;
+			}

This line is indented too far.

regards,
dan carpenter