projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'hsi-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi
[cascardo/linux.git]
/
net
/
mac80211
/
sta_info.c
diff --git
a/net/mac80211/sta_info.c
b/net/mac80211/sta_info.c
index
5ccfdbd
..
76b737d
100644
(file)
--- a/
net/mac80211/sta_info.c
+++ b/
net/mac80211/sta_info.c
@@
-90,6
+90,7
@@
static void __cleanup_single_sta(struct sta_info *sta)
struct tid_ampdu_tx *tid_tx;
struct ieee80211_sub_if_data *sdata = sta->sdata;
struct ieee80211_local *local = sdata->local;
struct tid_ampdu_tx *tid_tx;
struct ieee80211_sub_if_data *sdata = sta->sdata;
struct ieee80211_local *local = sdata->local;
+ struct fq *fq = &local->fq;
struct ps_data *ps;
if (test_sta_flag(sta, WLAN_STA_PS_STA) ||
struct ps_data *ps;
if (test_sta_flag(sta, WLAN_STA_PS_STA) ||
@@
-113,11
+114,10
@@
static void __cleanup_single_sta(struct sta_info *sta)
if (sta->sta.txq[0]) {
for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
struct txq_info *txqi = to_txq_info(sta->sta.txq[i]);
if (sta->sta.txq[0]) {
for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
struct txq_info *txqi = to_txq_info(sta->sta.txq[i]);
- int n = skb_queue_len(&txqi->queue);
-
ieee80211_purge_tx_queue(&local->hw, &txqi->queue
);
-
atomic_sub(n, &sdata->txqs_len[txqi->txq.ac]
);
-
txqi->byte_cnt = 0
;
+
spin_lock_bh(&fq->lock
);
+
ieee80211_txq_purge(local, txqi
);
+
spin_unlock_bh(&fq->lock)
;
}
}
}
}
@@
-368,7
+368,7
@@
struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
struct txq_info *txq = txq_data + i * size;
for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
struct txq_info *txq = txq_data + i * size;
- ieee80211_
init_tx_queue
(sdata, sta, txq, i);
+ ieee80211_
txq_init
(sdata, sta, txq, i);
}
}
}
}
@@
-1211,7
+1211,7
@@
void ieee80211_sta_ps_deliver_wakeup(struct sta_info *sta)
for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
struct txq_info *txqi = to_txq_info(sta->sta.txq[i]);
for (i = 0; i < ARRAY_SIZE(sta->sta.txq); i++) {
struct txq_info *txqi = to_txq_info(sta->sta.txq[i]);
- if (!
skb_queue_len(&txqi->queue)
)
+ if (!
txqi->tin.backlog_packets
)
continue;
drv_wake_tx_queue(local, txqi);
continue;
drv_wake_tx_queue(local, txqi);
@@
-1648,7
+1648,7
@@
ieee80211_sta_ps_deliver_response(struct sta_info *sta,
for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) {
struct txq_info *txqi = to_txq_info(sta->sta.txq[tid]);
for (tid = 0; tid < ARRAY_SIZE(sta->sta.txq); tid++) {
struct txq_info *txqi = to_txq_info(sta->sta.txq[tid]);
- if (!(tids & BIT(tid)) ||
skb_queue_len(&txqi->queue)
)
+ if (!(tids & BIT(tid)) ||
txqi->tin.backlog_packets
)
continue;
sta_info_recalc_tim(sta);
continue;
sta_info_recalc_tim(sta);