No description
Find a file
Vittorio Gambaletta 8301e61365 mac80211: Fix race condition leading to wifi interfaces not coming up at boot sometimes.
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>
2017-03-22 11:42:43 +01:00
.github github: include pull request template 2017-03-12 17:38:31 +01:00
config build: add devel option to store build config in firmware 2017-03-18 12:08:04 +01:00
include include: add KERNEL_LOAD_ADDR to TARGET_VARS 2017-03-22 09:45:18 +01:00
package mac80211: Fix race condition leading to wifi interfaces not coming up at boot sometimes. 2017-03-22 11:42:43 +01:00
scripts scripts: only generate config from feature flag if fully match 2017-03-20 22:04:41 +01:00
target ipq806x: remove v4.4 support 2017-03-22 09:45:18 +01:00
toolchain toolchain/binutils: Add binutils 2.28 2017-03-20 08:23:58 +01:00
tools tools/upx: Remove from repo 2017-03-20 08:26:35 +01:00
.gitattributes add .gitattributes to prevent the git autocrlf option from messing with CRLF/LF in files 2012-05-08 13:30:49 +00:00
.gitignore gitignore: add /overlay 2017-01-15 18:16:29 +01:00
BSDmakefile add missing copyright header 2007-02-26 01:05:09 +00:00
Config.in branding: add LEDE branding 2016-03-24 22:40:13 +01:00
feeds.conf.default Add video feed to feeds.conf.default 2017-01-25 16:04:39 +01:00
LICENSE finally move buildroot-ng to trunk 2016-03-20 17:29:15 +01:00
Makefile build: prepare config.seed before package compilation 2017-03-18 12:08:04 +01:00
README README: Update project README 2016-05-12 03:29:36 +02:00
rules.mk rules.mk: make PKG_CONFIG_DEPENDS properly track string values 2017-02-27 23:46:53 +01:00

This is the buildsystem for the LEDE Linux distribution.

Please use "make menuconfig" to choose your preferred
configuration for the toolchain and firmware.

You need to have installed gcc, binutils, bzip2, flex, python, perl, make,
find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers.

Run "./scripts/feeds update -a" to get all the latest package definitions
defined in feeds.conf / feeds.conf.default respectively
and "./scripts/feeds install -a" to install symlinks of all of them into
package/feeds/.

Use "make menuconfig" to configure your image.

Simply running "make" will build your firmware.
It will download all sources, build the cross-compile toolchain, 
the kernel and all choosen applications.

To build your own firmware you need to have access to a Linux, BSD or MacOSX system
(case-sensitive filesystem required). Cygwin will not be supported because of
the lack of case sensitiveness in the file system.


Sunshine!
	Your LEDE Community
	http://www.lede-project.org