summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-08-26 20:14:21 +0000
committerFelix Fietkau2025-08-27 08:29:21 +0000
commit9c895bacfb11374b13bf38d614552893d1c95b2f (patch)
treeafbf3c60fb4351d8fab2ff878b8ad34bc6f61732
parent95c8b385e58f8c73ef3f01b3757cb066f6ec8b95 (diff)
downloadopenwrt-9c895bacfb11374b13bf38d614552893d1c95b2f.tar.gz
hostapd: fix wds ap on single-wiphy devices
Ensure events are passed to the right interface Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch b/package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch
new file mode 100644
index 0000000000..902fd4726e
--- /dev/null
+++ b/package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch
@@ -0,0 +1,22 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Tue, 26 Aug 2025 22:04:57 +0200
+Subject: [PATCH] nl80211: fix reporting spurious frame events
+
+When the nl80211 driver is shared across multiple interfaces (on the same
+wiphy), nl80211_spurious_frame can send the event to the wrong interface by
+using drv->ctx. Fix this by using bss->ctx instead.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/src/drivers/driver_nl80211_event.c
++++ b/src/drivers/driver_nl80211_event.c
+@@ -2789,7 +2789,7 @@ static void nl80211_spurious_frame(struc
+ event.rx_from_unknown.addr = nla_data(tb[NL80211_ATTR_MAC]);
+ event.rx_from_unknown.wds = wds;
+
+- wpa_supplicant_event(drv->ctx, EVENT_RX_FROM_UNKNOWN, &event);
++ wpa_supplicant_event(bss->ctx, EVENT_RX_FROM_UNKNOWN, &event);
+ }
+
+