summaryrefslogtreecommitdiff
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2017-12-19 10:10:48 +0100
committerJohannes Berg <johannes.berg@intel.com>2017-12-19 10:12:26 +0100
commit0973dd45ecefd746569d414406f5733062fe2817 (patch)
tree7a7d3eb5261a47160fef831203a0c90fca6bee8d /net/mac80211/tx.c
parentb0d52ad821843a6c5badebd80feef9f871904fa6 (diff)
Revert "mac80211: Add airtime account and scheduling to TXQs"
This reverts commit b0d52ad821843a6c5badebd80feef9f871904fa6. We need to revert the TXQ scheduling API due to conflicts with a new driver, and this depends on that API. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r--net/mac80211/tx.c31
1 files changed, 5 insertions, 26 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 18381581b5e9..842881ca8f20 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3566,7 +3566,7 @@ bool ieee80211_schedule_txq(struct ieee80211_hw *hw,
spin_lock_bh(&local->active_txq_lock);
if (list_empty(&txqi->schedule_order)) {
- list_add_tail(&txqi->schedule_order, &local->active_txqs_new);
+ list_add_tail(&txqi->schedule_order, &local->active_txqs);
ret = true;
}
@@ -3580,35 +3580,14 @@ struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw)
{
struct ieee80211_local *local = hw_to_local(hw);
struct txq_info *txqi = NULL;
- struct list_head *head;
spin_lock_bh(&local->active_txq_lock);
-begin:
- head = &local->active_txqs_new;
- if (list_empty(head)) {
- head = &local->active_txqs_old;
- if (list_empty(head))
- goto out;
- }
-
- txqi = list_first_entry(head, struct txq_info, schedule_order);
-
- if (txqi->txq.sta) {
- struct sta_info *sta = container_of(txqi->txq.sta,
- struct sta_info, sta);
-
- spin_lock_bh(&sta->lock);
- if (sta->airtime_deficit < 0) {
- sta->airtime_deficit += IEEE80211_AIRTIME_QUANTUM;
- list_move_tail(&txqi->schedule_order,
- &local->active_txqs_old);
- spin_unlock_bh(&sta->lock);
- goto begin;
- }
- spin_unlock_bh(&sta->lock);
- }
+ if (list_empty(&local->active_txqs))
+ goto out;
+ txqi = list_first_entry(&local->active_txqs,
+ struct txq_info, schedule_order);
list_del_init(&txqi->schedule_order);
out: