iwlagn: fix TID use bug
authorJohannes Berg <johannes.berg@intel.com>
Fri, 2 Dec 2011 20:22:54 +0000 (12:22 -0800)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 8 Dec 2011 23:55:35 +0000 (15:55 -0800)
The driver everywhere uses max TID count as 9,
which is wrong, it should be 8.

I think the reason it uses 9 here is off-by-one
confusion by whoever wrote this. We do use the
value IWL_MAX_TID_COUNT for "not QoS/no TID"
but that is completely correct even if it is 8
and not 9 since 0-7 are only valid.

As a side effect, this fixes the following bug:

 Open BA session requested for 00:23:cd:16:8a:7e tid 8
 ------------[ cut here ]------------
 kernel BUG at drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h:350!
 ...

when you do
echo "tx start 8" > /sys/kernel/debug/ieee80211/*/*/*/*/agg_status

Cc: stable@vger.kernel.org
Reported-by: Nikolay Martynov <mar.kolya@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-commands.h

index 87bfdf6bdf6aa4c6fc71036d072b46a17fb667e9..265de39d394ca9ce7093b37f007e0fb2c3c94a85 100644 (file)
@@ -814,7 +814,7 @@ struct iwl_qosparam_cmd {
 #define        IWLAGN_STATION_COUNT    16
 
 #define        IWL_INVALID_STATION     255
-#define IWL_MAX_TID_COUNT      9
+#define IWL_MAX_TID_COUNT      8
 
 #define STA_FLG_TX_RATE_MSK            cpu_to_le32(1 << 2)
 #define STA_FLG_PWR_SAVE_MSK           cpu_to_le32(1 << 8)