* [PATCH] mac80211: give warning if building w/out rate ctrl algorithm
@ 2010-02-16 21:16 Andres Salomon
2010-02-16 21:21 ` Marcel Holtmann
2010-02-17 7:40 ` Holger Schurig
0 siblings, 2 replies; 6+ messages in thread
From: Andres Salomon @ 2010-02-16 21:16 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
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
---
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] mac80211: give warning if building w/out rate ctrl algorithm
2010-02-16 21:16 [PATCH] mac80211: give warning if building w/out rate ctrl algorithm Andres Salomon
@ 2010-02-16 21:21 ` Marcel Holtmann
2010-02-16 21:50 ` Andres Salomon
2010-02-17 7:40 ` Holger Schurig
1 sibling, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2010-02-16 21:21 UTC (permalink / raw)
To: Andres Salomon; +Cc: linux-wireless, Johannes Berg
Hi Andres,
> 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.
this is not an acceptable policy. You are generating false positives now
for drivers that have been fine before.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mac80211: give warning if building w/out rate ctrl algorithm
2010-02-16 21:21 ` Marcel Holtmann
@ 2010-02-16 21:50 ` Andres Salomon
2010-02-16 23:01 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: Andres Salomon @ 2010-02-16 21:50 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: linux-wireless, Johannes Berg
On Tue, 16 Feb 2010 13:21:19 -0800
Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Andres,
>
> > 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.
>
> this is not an acceptable policy. You are generating false positives
> now for drivers that have been fine before.
>
Unacceptable how? It's a warning, not a requirement. It's
telling the user to double-check their config.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mac80211: give warning if building w/out rate ctrl algorithm
2010-02-16 21:50 ` Andres Salomon
@ 2010-02-16 23:01 ` Marcel Holtmann
2010-02-16 23:43 ` Andres Salomon
0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2010-02-16 23:01 UTC (permalink / raw)
To: Andres Salomon; +Cc: linux-wireless, Johannes Berg
Hi Andres,
> > > 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.
> >
> > this is not an acceptable policy. You are generating false positives
> > now for drivers that have been fine before.
> >
>
> Unacceptable how? It's a warning, not a requirement. It's
> telling the user to double-check their config.
and why not either whitelist drivers with their own rate control or have
the ones without rate control depend on a selection. You can't really
expect all users to know which driver comes with rate control and which
doesn't.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mac80211: give warning if building w/out rate ctrl algorithm
2010-02-16 23:01 ` Marcel Holtmann
@ 2010-02-16 23:43 ` Andres Salomon
0 siblings, 0 replies; 6+ messages in thread
From: Andres Salomon @ 2010-02-16 23:43 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: linux-wireless, Johannes Berg
On Tue, 16 Feb 2010 15:01:39 -0800
Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Andres,
>
> > > > 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.
> > >
> > > this is not an acceptable policy. You are generating false
> > > positives now for drivers that have been fine before.
> > >
> >
> > Unacceptable how? It's a warning, not a requirement. It's
> > telling the user to double-check their config.
>
> and why not either whitelist drivers with their own rate control or
> have the ones without rate control depend on a selection. You can't
> really expect all users to know which driver comes with rate control
> and which doesn't.
>
Two reasons:
1) It's not clear which drivers should be whitelisted. *No* driver sets
IEEE80211_HW_HAS_RATE_CONTROL. Some drivers (ath9k, iwlagn, iwl3945)
call ieee80211_rate_control_register(). That's a pretty incomplete
list.
2) Here's a scenario to consider: via menuconfig, a user configures
net/mac80211 (that section comes before drivers/net/wireless); there's
no warning, because iwlagn is already selected in drivers/net/wireless.
They don't select any RC algorithms, and then proceed to
drivers/net/wireless, where they select rtl8187 (maybe they use both,
or maybe iwlagn was just selected as the default, or maybe from an
old .config; who knows?). Rtl8187 requires an RC algorithm, but there's
no warning displayed to the user that RC algorithms aren't being built,
so the user then builds a broken rtl8187 driver. Maybe the rtl8187
'help' section should be warning the user, or maybe the current warning
should be moved over to drivers/net/wireless/Kconfig, or maybe the
rtl8187 driver should just forcefully select an RC algorithm if none is
selected (which is frowned upon). This kind of problem is not fixed by
a simplistic whitelist, though.
I'm more than happy to come up w/ a Kconfig framework for drivers to
opt into, stating that they don't require RC, but that's something that
needs wider discussion, feedback from driver authors, and potentially
changes to drivers as well. In the meantime, a simplistic warning
(suggesting to the user a *safe* choice) is better than nothing, and
hurts no one.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] mac80211: give warning if building w/out rate ctrl algorithm
2010-02-16 21:16 [PATCH] mac80211: give warning if building w/out rate ctrl algorithm Andres Salomon
2010-02-16 21:21 ` Marcel Holtmann
@ 2010-02-17 7:40 ` Holger Schurig
1 sibling, 0 replies; 6+ messages in thread
From: Holger Schurig @ 2010-02-17 7:40 UTC (permalink / raw)
To: linux-wireless; +Cc: Andres Salomon, Johannes Berg
> I discovered that if EMBEDDED=y, one can accidentally build a
> mac80211 stack and drivers w/ no rate control algorithm.
I think this is fine. I'm working with embedded devices (AVR32 &
ARM) as well. And I usually turn on CONFIG_EMBEDDED=Y because I
want to really fine-tune my kernel to my device.
And therefore I know my hardware.
And because I know my hardware, I can decide on my own if I need
rate ctrl or not.
--
http://www.holgerschurig.de
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-02-17 7:44 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-16 21:16 [PATCH] mac80211: give warning if building w/out rate ctrl algorithm Andres Salomon
2010-02-16 21:21 ` Marcel Holtmann
2010-02-16 21:50 ` Andres Salomon
2010-02-16 23:01 ` Marcel Holtmann
2010-02-16 23:43 ` Andres Salomon
2010-02-17 7:40 ` Holger Schurig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).