mac80211: disable WMM with invalid parameters
authorJohannes Berg <johannes.berg@intel.com>
Tue, 15 Oct 2013 10:25:07 +0000 (12:25 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 17 Oct 2013 13:38:22 +0000 (15:38 +0200)
commit095d81cee742fc31e1218077ca6ca8f0df07c613
treea4518d4b69a13353f1114f35ac84d9a284a98df6
parent1d2d350bbf4a1ba6cef5e3dbb63c66da11814d9a
mac80211: disable WMM with invalid parameters

Some APs (notably a Sitecom WL-153 v1 with firmware 1.45) are sending
invalid WMM parameters setting AIFSN, ECWmin and ECWmax to zero. The
spec mandates that the value of AIFSN is at least 2, and some cards
(e.g. Intel with the iwldvm driver) can't transmit when the invalid
QoS parameters are actually uploaded to the firmware.

Since there's little chance of being able to guess the values that
the AP actually meant, disable WMM if such an invalid case is found.
Since ECWmin/ECWmax are allowed to be zero, only verify AIFSN >= 2
and ECWmin <= ECWmax.

Reviewed-by: Eliad Peller <eliad@wizery.com>
Reported-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c