On Mon, 8 Feb 2010 10:32:50 -0800 "Luis R. Rodriguez" <mcgrof@xxxxxxxxx> wrote: > On Sun, Feb 7, 2010 at 6:48 PM, Andres Salomon > <dilinger@xxxxxxxxxxxxxxx> wrote: > > > > I discovered that if EMBEDDED=y, one can accidentally build a > > mac80211 stack w/ no rate control algorithm. When RC_MINISTREL and > > RC_PID are both disabled, the RC_DEFAULT string (which rate.c uses > > as the fallback algorithm) will be "". That'll cause the > > rate_control_alloc to fail, which will in turn cause > > ieee80211_register_hw to fail. IOW, no driver will load. > > > > This will tell kconfig to provide a warning if no rate control > > algorithms have been selected. That'll at least warn the user that > > they're about to build a broken wireless stack. > > > Please Cc: stable@xxxxxxxxxx here as well, I think we've had this for > a while. > > > Signed-off-by: Andres Salomon <dilinger@xxxxxxxxxxxxxxx> > > Luis Here's an updated patch. I ended up just changing the wording. Subject: [PATCH] mac80211: give warning if building w/out rate ctrl algorithm I discovered that if EMBEDDED=y, one can accidentally build a mac80211 stack and drivers w/ no rate control algorithm. For drivers like RTL8187 that don't supply their own RC algorithms, this will cause ieee80211_register_hw to fail (making the driver unusable). This will tell kconfig to provide a warning if no rate control algorithms have been selected. That'll at least warn the user; users that know that their drivers supply a rate control algorithm can safely ignore the warning, and those who don't know (or who expect to be using multiple drivers) can select a default RC algorithm. Signed-off-by: Andres Salomon <dilinger@xxxxxxxxxxxxxxx> --- net/mac80211/Kconfig | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig index a10d508..2a51b0b 100644 --- a/net/mac80211/Kconfig +++ b/net/mac80211/Kconfig @@ -15,8 +15,12 @@ comment "CFG80211 needs to be enabled for MAC80211" if MAC80211 != n +config MAC80211_HAS_RC + def_bool n + config MAC80211_RC_PID bool "PID controller based rate control algorithm" if EMBEDDED + select MAC80211_HAS_RC ---help--- This option enables a TX rate control algorithm for mac80211 that uses a PID controller to select the TX @@ -24,12 +28,14 @@ config MAC80211_RC_PID config MAC80211_RC_MINSTREL bool "Minstrel" if EMBEDDED + select MAC80211_HAS_RC default y ---help--- This option enables the 'minstrel' TX rate control algorithm choice prompt "Default rate control algorithm" + depends on MAC80211_HAS_RC default MAC80211_RC_DEFAULT_MINSTREL ---help--- This option selects the default rate control algorithm @@ -62,6 +68,9 @@ config MAC80211_RC_DEFAULT endif +comment "some wireless drivers require a rate control algorithm" + depends on MAC80211_HAS_RC=n + config MAC80211_MESH bool "Enable mac80211 mesh networking (pre-802.11s) support" depends on MAC80211 && EXPERIMENTAL -- 1.5.6.5 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html