diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-05-07 11:45:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-05-16 12:46:04 -0400 |
commit | a9d3c05cca51d80ef2b9eddabf794c9458e36c2c (patch) | |
tree | 82cae7d9fc6ad945b76b08b65fe2f18f3a3aeec4 | |
parent | 044e68c0cd01a70fd4929ce19ce52ba5df839b22 (diff) |
mac80211: fix single queue drivers
My queue management rework broke drivers that don't
have multiple AC queues and register a single queue
only, causing a warning:
WARNING: at net/mac80211/iface.c:162 ieee80211_check_queues
This was due to filling the queues wrongly and then
noticing the error when checking later.
Reported-and-Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | net/mac80211/iface.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 3e05a8bfddf0..c550945dd703 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -206,8 +206,10 @@ static void ieee80211_set_default_queues(struct ieee80211_sub_if_data *sdata) | |||
206 | for (i = 0; i < IEEE80211_NUM_ACS; i++) { | 206 | for (i = 0; i < IEEE80211_NUM_ACS; i++) { |
207 | if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL) | 207 | if (local->hw.flags & IEEE80211_HW_QUEUE_CONTROL) |
208 | sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; | 208 | sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; |
209 | else | 209 | else if (local->hw.queues >= IEEE80211_NUM_ACS) |
210 | sdata->vif.hw_queue[i] = i; | 210 | sdata->vif.hw_queue[i] = i; |
211 | else | ||
212 | sdata->vif.hw_queue[i] = 0; | ||
211 | } | 213 | } |
212 | sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; | 214 | sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; |
213 | } | 215 | } |