]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: don't send deferred frames outside the SP
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 17 Mar 2016 14:51:41 +0000 (16:51 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 5 Apr 2016 09:16:50 +0000 (11:16 +0200)
commit0b7a6749d9c6b28971f25822dadd13177ad61c2b
treeeca4b41c29d7350fa7ab97fb1c9eec8546b442f3
parent0fa0c9632e4623eaa05f3cb53ce624933d5a1829
mac80211: don't send deferred frames outside the SP

Frames that are sent between
ampdu_action(IEEE80211_AMPDU_TX_START) and the move to the
HT_AGG_STATE_OPERATIONAL state are buffered.
If we try to start an A-MPDU session while the peer is
sleeping and polling frames with U-APSD, we may have frames
that will be buffered by ieee80211_tx_prep_agg. These frames
have IEEE80211_TX_CTL_NO_PS_BUFFER set since they are sent to
a sleeping client and possibly IEEE80211_TX_STATUS_EOSP.
If the frame is buffered, we need clear these two flags
since they will be re-sent after the move to
HT_AGG_STATE_OPERATIONAL state which is very likely to
happen after the SP ends.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/tx.c