mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-01-30 21:13:07 +01:00
In the drv_mac80211_setup function, mac80211_interface_cleanup
is called to ask the kernel to delete all existing interfaces
for the phy that is being configured via netlink.
Later in the first function, mac80211_prepare_vif is called to
set up the new interfaces as required.
But sometimes, when mac80211_prepare_vif (and so the relevant
`iw phy x interface add y` command) runs, the kernel might still
be cleaning up the old interface with the same ifname. It usually
takes very few time to do that; possibly a few milliseconds of
sleep in the script after detecting this error condition could be
enough, but the busybox sh does not support sub-second sleep
intervals.
When this happens, iw obviously fails to create the new interface;
and the following message is printed in the system log, followed by
subsequent failure messages from hostapd in case this would have been
an AP interface.
Tue Mar 14 04:21:57 2017 daemon.notice netifd: radio1 (2767): command failed: Too many open files in system (-23)
This was a long-standing issue existing since at least OpenWrt Backfire,
and today I finally managed to debug and (hopefully) solve it.
It was happening very few times on most devices; but it was happening
a lot more frequently on fast platforms with multiple radios, such as
the powerpc-based dual-ath9k-radio tl-wdr4900-v1.
Signed-off-by: Vittorio Gambaletta <openwrt@vittgam.net>
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| acx-mac80211 | ||
| ar7-atm | ||
| ath10k-ct | ||
| avila-wdt | ||
| brcm2708-gpu-fw | ||
| broadcom-wl | ||
| button-hotplug | ||
| gpio-button-hotplug | ||
| gpio-nct5104d | ||
| hwmon-gsc | ||
| i2c-gpio-custom | ||
| kmod-sched-cake | ||
| lantiq | ||
| leds-apu2 | ||
| linux | ||
| mac80211 | ||
| mt76 | ||
| mwlwifi | ||
| om-watchdog | ||
| rotary-gpio-custom | ||
| rtc-rv5c386a | ||
| spi-gpio-custom | ||
| trelay | ||
| w1-gpio-custom | ||
| wrt55agv2-spidevs | ||