mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-21 03:55:06 +00:00
mac80211: gracefully handle preexisting VIF
Gracefully handle cases where the to-be-created wireless interface already exists on the system which might commonly happen with non-multi-SSID capable wireless drivers. This fixes commit8301e61365
which caused previously ignored "Too many open files in system (-23)" errors to fail the wireless setup procedure. With the updated approach we'll still try recreating the vif after one second if the first attempt to do so failed with ENFILE but we will now consider the operation successfull if a second attempt still yields ENFILE with the requested ifname already existing on the system. Fixes FS#664, FS#704. Suggested-by: Vittorio Gambaletta <openwrt@vittgam.net> Signed-off-by: Jo-Philipp Wich <jo@mein.io> (cherry picked from commit4a03347545
)
This commit is contained in:
parent
827f108b42
commit
f0a493160c
@ -429,6 +429,12 @@ mac80211_iw_interface_add() {
|
|||||||
rc="$?"
|
rc="$?"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[ "$rc" = 233 ] && {
|
||||||
|
# Device might not support virtual interfaces, so the interface never got deleted in the first place.
|
||||||
|
# Check if the interface already exists, and avoid failing in this case.
|
||||||
|
ip link show dev "$ifname" >/dev/null 2>/dev/null && rc=0
|
||||||
|
}
|
||||||
|
|
||||||
[ "$rc" != 0 ] && wireless_setup_failed INTERFACE_CREATION_FAILED
|
[ "$rc" != 0 ] && wireless_setup_failed INTERFACE_CREATION_FAILED
|
||||||
return $rc
|
return $rc
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user