mac80211: end service period only after sending last buffered frame
Signed-off-by: Marco Porsch <marco.porsch@etit.tu-chemnitz.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
fa444bf88c
commit
52a3f20c09
@@ -1195,13 +1195,15 @@ ieee80211_sta_ps_deliver_response(struct sta_info *sta,
|
|||||||
ieee80211_is_qos_nullfunc(hdr->frame_control))
|
ieee80211_is_qos_nullfunc(hdr->frame_control))
|
||||||
qoshdr = ieee80211_get_qos_ctl(hdr);
|
qoshdr = ieee80211_get_qos_ctl(hdr);
|
||||||
|
|
||||||
/* set EOSP for the frame */
|
/* end service period after last frame */
|
||||||
if (reason == IEEE80211_FRAME_RELEASE_UAPSD &&
|
if (skb_queue_empty(&frames)) {
|
||||||
qoshdr && skb_queue_empty(&frames))
|
if (reason == IEEE80211_FRAME_RELEASE_UAPSD &&
|
||||||
*qoshdr |= IEEE80211_QOS_CTL_EOSP;
|
qoshdr)
|
||||||
|
*qoshdr |= IEEE80211_QOS_CTL_EOSP;
|
||||||
|
|
||||||
info->flags |= IEEE80211_TX_STATUS_EOSP |
|
info->flags |= IEEE80211_TX_STATUS_EOSP |
|
||||||
IEEE80211_TX_CTL_REQ_TX_STATUS;
|
IEEE80211_TX_CTL_REQ_TX_STATUS;
|
||||||
|
}
|
||||||
|
|
||||||
if (qoshdr)
|
if (qoshdr)
|
||||||
tids |= BIT(*qoshdr & IEEE80211_QOS_CTL_TID_MASK);
|
tids |= BIT(*qoshdr & IEEE80211_QOS_CTL_TID_MASK);
|
||||||
|
Reference in New Issue
Block a user