mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi
This patch removes all the virtual A-MPDU-queue bookkeeping from mac80211. Curiously, iwlwifi already does its own bookkeeping, so it doesn't require much changes except where it needs to handle starting and stopping the queues in mac80211. To handle the queue stop/wake properly, we rewrite the software queue number for aggregation frames and internally to iwlwifi keep track of the queues that map into the same AC queue, and only talk to mac80211 about the AC queue. The implementation requires calling two new functions, iwl_stop_queue and iwl_wake_queue instead of the mac80211 counterparts. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Cc: Reinette Chattre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
cd8ffc800c
commit
e4e72fb4de
@ -594,12 +594,7 @@ struct ieee80211_local {
|
||||
|
||||
const struct ieee80211_ops *ops;
|
||||
|
||||
/* AC queue corresponding to each AMPDU queue */
|
||||
s8 ampdu_ac_queue[IEEE80211_MAX_AMPDU_QUEUES];
|
||||
unsigned int amdpu_ac_stop_refcnt[IEEE80211_MAX_AMPDU_QUEUES];
|
||||
|
||||
unsigned long queue_stop_reasons[IEEE80211_MAX_QUEUES +
|
||||
IEEE80211_MAX_AMPDU_QUEUES];
|
||||
unsigned long queue_stop_reasons[IEEE80211_MAX_QUEUES];
|
||||
/* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
|
||||
spinlock_t queue_stop_reason_lock;
|
||||
|
||||
|
Reference in New Issue
Block a user