Skip to content

Commit

Permalink
mac80211: end service period only after sending last buffered frame
Browse files Browse the repository at this point in the history
Signed-off-by: Marco Porsch <marco.porsch@etit.tu-chemnitz.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Marco Porsch authored and John W. Linville committed Apr 9, 2012
1 parent fa444bf commit 52a3f20
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions net/mac80211/sta_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -1195,13 +1195,15 @@ ieee80211_sta_ps_deliver_response(struct sta_info *sta,
ieee80211_is_qos_nullfunc(hdr->frame_control))
qoshdr = ieee80211_get_qos_ctl(hdr);

/* set EOSP for the frame */
if (reason == IEEE80211_FRAME_RELEASE_UAPSD &&
qoshdr && skb_queue_empty(&frames))
*qoshdr |= IEEE80211_QOS_CTL_EOSP;

info->flags |= IEEE80211_TX_STATUS_EOSP |
IEEE80211_TX_CTL_REQ_TX_STATUS;
/* end service period after last frame */
if (skb_queue_empty(&frames)) {
if (reason == IEEE80211_FRAME_RELEASE_UAPSD &&
qoshdr)
*qoshdr |= IEEE80211_QOS_CTL_EOSP;

info->flags |= IEEE80211_TX_STATUS_EOSP |
IEEE80211_TX_CTL_REQ_TX_STATUS;
}

if (qoshdr)
tids |= BIT(*qoshdr & IEEE80211_QOS_CTL_TID_MASK);
Expand Down

0 comments on commit 52a3f20

Please sign in to comment.