From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 3 Aug 2023 16:47:15 +0000 (+0200)
Subject: hostapd: fix unused device removal on DBDC devices
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=b8be20c7e81de2894df8fa2b361c39bc723e4cb5;p=openwrt%2Fstaging%2Fneocturne.git

hostapd: fix unused device removal on DBDC devices

Check the phy before removing unrelated netdevs on the same hw device

Reported-by: Hartmut Birr <e9hack@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---

diff --git a/package/network/services/hostapd/files/wdev.uc b/package/network/services/hostapd/files/wdev.uc
index 9701af125a..896f5261fb 100644
--- a/package/network/services/hostapd/files/wdev.uc
+++ b/package/network/services/hostapd/files/wdev.uc
@@ -1,7 +1,7 @@
 #!/usr/bin/env ucode
 'use strict';
 import { vlist_new, is_equal, wdev_create, wdev_remove } from "/usr/share/hostap/common.uc";
-import { readfile, writefile, basename, glob } from "fs";
+import { readfile, writefile, basename, readlink, glob } from "fs";
 
 let keep_devices = {};
 let phy = shift(ARGV);
@@ -106,6 +106,9 @@ function add_existing(phy, config)
 		if (config[wdev])
 			continue;
 
+		if (basename(readlink(`/sys/class/net/${wdev}/phy80211`)) != phy)
+			continue;
+
 		if (trim(readfile(`/sys/class/net/${wdev}/operstate`)) == "down")
 			config[wdev] = {};
 	}