From 0e85654df6cb3d307a4bba77c577b220af21e673 Mon Sep 17 00:00:00 2001 From: Marco Porsch Date: Fri, 16 Mar 2012 15:30:26 +0100 Subject: [PATCH] --- yaml --- r: 300624 b: refs/heads/master c: 52a3f20c09559465f821b54838decb397054e7de h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/mac80211/sta_info.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index d1ace47838f3..1934d4820818 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fa444bf88ce2ba17d24dd0bb279e3106acf86bed +refs/heads/master: 52a3f20c09559465f821b54838decb397054e7de diff --git a/trunk/net/mac80211/sta_info.c b/trunk/net/mac80211/sta_info.c index 38137cb5f6f0..7fd7ac48f893 100644 --- a/trunk/net/mac80211/sta_info.c +++ b/trunk/net/mac80211/sta_info.c @@ -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);