diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-09-24 14:59:48 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-09-29 15:56:51 +0200 |
commit | 50f36ae61a5b65ba4612a5d2aa696c8ac5b6c988 (patch) | |
tree | 7bf079ddaaf700e4e63ee119d7774ff52a6ae17a /net | |
parent | 44674d9c2267f454f38df7b2395939bfa911f92e (diff) | |
download | linux-50f36ae61a5b65ba4612a5d2aa696c8ac5b6c988.tar.gz linux-50f36ae61a5b65ba4612a5d2aa696c8ac5b6c988.tar.bz2 linux-50f36ae61a5b65ba4612a5d2aa696c8ac5b6c988.zip |
mac80211: fix tx sequence number assignment with software queue + fast-xmit
When using software queueing, tx sequence number assignment happens at
ieee80211_tx_dequeue time, so the fast-xmit codepath must not do that.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/tx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 73540723be37..464ba1a625bd 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -2767,7 +2767,8 @@ static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata, if (hdr->frame_control & cpu_to_le16(IEEE80211_STYPE_QOS_DATA)) { *ieee80211_get_qos_ctl(hdr) = tid; - hdr->seq_ctrl = ieee80211_tx_next_seq(sta, tid); + if (!sta->sta.txq[0]) + hdr->seq_ctrl = ieee80211_tx_next_seq(sta, tid); } else { info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ; hdr->seq_ctrl = cpu_to_le16(sdata->sequence_number); |