wlan-ap-Telecominfraproject/feeds/qca/hostapd/patches/r02-014-hostapd-fix-simultaneous-scanning-failure-in-case-of.patch
John Crispin 008ca9618d
Some checks failed
Build OpenWrt/uCentral images / build (cig_wf186h) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf186w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf188n) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf189) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cig_wf196) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cybertan_eww631-a1) (push) Has been cancelled
Build OpenWrt/uCentral images / build (cybertan_eww631-b1) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap101) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap102) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap104) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap105) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap111) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_eap112) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101-6e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (edgecore_oap101e-6e) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_3) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4x_w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xe) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xi) (push) Has been cancelled
Build OpenWrt/uCentral images / build (hfcl_ion4xi_w) (push) Has been cancelled
Build OpenWrt/uCentral images / build (indio_um-305ax) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sercomm_ap72tip) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630c-311g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630w-211g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (sonicfi_rap630w-311g) (push) Has been cancelled
Build OpenWrt/uCentral images / build (udaya_a6-id2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (udaya_a6-od2) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr5018) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr6018) (push) Has been cancelled
Build OpenWrt/uCentral images / build (wallys_dr6018-v4) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_ax820) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_ax840) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap640) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap650) (push) Has been cancelled
Build OpenWrt/uCentral images / build (yuncore_fap655) (push) Has been cancelled
Build OpenWrt/uCentral images / trigger-testing (push) Has been cancelled
Build OpenWrt/uCentral images / create-x64_vm-ami (push) Has been cancelled
ipq95xx: import ath12.4-cs kernel and drivers
Signed-off-by: John Crispin <john@phrozen.org>
2024-10-20 09:25:13 +02:00

62 lines
2.3 KiB
Diff

From 1bf64ee6e25ff8256337bfe9c13ceaf27c06c2aa Mon Sep 17 00:00:00 2001
From: Aditya Kumar Singh <quic_adisi@quicinc.com>
Date: Wed, 1 Nov 2023 22:36:40 +0530
Subject: [PATCH 3/4] hostapd: fix simultaneous scanning failure in case of MLO
Currently only 1 scan can be performed on per phy level at a time
in mac80211. Due to this, if via other underlying radio, a scan
request is sent, kernel returns -EBUSY. And then hostapd would
try to set the interface in station mode if it was originally
in AP mode and retry sending a scan request. However, this
behaviour is expected in case of multi link operation and hence
there is no need to switch the mode as such.
Hence, add logic to not change the nl mode if kernel returns
-EBUSY during multi link AP operation. The caller can accordingly
decide and if needed, it can re-schedule a scan request after
some time.
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
---
src/drivers/driver_nl80211_scan.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c
index 5173accf2338..a5fe955555b1 100644
--- a/src/drivers/driver_nl80211_scan.c
+++ b/src/drivers/driver_nl80211_scan.c
@@ -398,6 +398,30 @@ int wpa_driver_nl80211_scan(struct i802_bss *bss,
if (drv->hostapd && is_ap_interface(drv->nlmode)) {
enum nl80211_iftype old_mode = drv->nlmode;
+ /* For Multi Link BSS, retry scan if any other links are busy scanning */
+ if (ret == -EBUSY && nl80211_link_valid(bss, params->mlo_link_id)) {
+ struct i802_bss *link_bss;
+
+ wpa_printf(MSG_DEBUG,
+ "nl80211: Scan trigger on Multi Link BSS failed (requested link=%d interface %s)",
+ params->mlo_link_id, bss->ifname);
+
+ for (link_bss = drv->first_bss; link_bss; link_bss = link_bss->next)
+ if (link_bss->scan_link)
+ break;
+
+ if (!link_bss) {
+ wpa_printf(MSG_DEBUG,
+ "nl80211: Interface information already running scan not available");
+ goto fail;
+ }
+
+ wpa_printf(MSG_DEBUG,
+ "nl80211: Scan already running on interface %s link %d",
+ link_bss->ifname, link_bss->scan_link->link_id);
+ goto fail;
+ }
+
/*
* mac80211 does not allow scan requests in AP mode, so
* try to do this in station mode.
--
2.17.1