mac80211: give warning if building w/out rate ctrl algorithm
authorAndres Salomon <dilinger@collabora.co.uk>
Fri, 26 Feb 2010 00:18:47 +0000 (19:18 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 10 Mar 2010 22:09:40 +0000 (17:09 -0500)
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@collabora.co.uk>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/Kconfig

index a952b7f..334c359 100644 (file)
@@ -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