summaryrefslogtreecommitdiff
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-02-20 02:07:21 +0100
committerJohn W. Linville <linville@tuxdriver.com>2008-02-29 15:37:26 -0500
commit836341a70471ba77657b0b420dd7eea3c30a038b (patch)
treef27af297dd49c1aa5d6df3cd496b8b5fb7e43c2a /net/mac80211/rx.c
parentd2259243a19894eee06c16e278adfea81dc42bd9 (diff)
downloadlwn-836341a70471ba77657b0b420dd7eea3c30a038b.tar.gz
lwn-836341a70471ba77657b0b420dd7eea3c30a038b.zip
mac80211: remove sta TIM flag, fix expiry TIM handling
The TIM flag that is kept in each station's info is completely useless, there's no code (aside from the debugfs display code) checking it, hence it can be removed. While doing that, I noticed that the TIM handling is broken when buffered frames expire, so fix that. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index af606f715016..0e8a371496b3 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -598,7 +598,7 @@ static int ap_sta_ps_end(struct net_device *dev, struct sta_info *sta)
sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev);
if (sdata->bss)
atomic_dec(&sdata->bss->num_sta_ps);
- sta->flags &= ~(WLAN_STA_PS | WLAN_STA_TIM | WLAN_STA_PSPOLL);
+ sta->flags &= ~(WLAN_STA_PS | WLAN_STA_PSPOLL);
if (!skb_queue_empty(&sta->ps_tx_buf)) {
if (sdata->bss)
bss_tim_clear(local, sdata->bss, sta->aid);
@@ -938,10 +938,9 @@ ieee80211_rx_h_ps_poll(struct ieee80211_txrx_data *rx)
/* Use MoreData flag to indicate whether there are more
* buffered frames for this STA */
- if (no_pending_pkts) {
+ if (no_pending_pkts)
hdr->frame_control &= cpu_to_le16(~IEEE80211_FCTL_MOREDATA);
- rx->sta->flags &= ~WLAN_STA_TIM;
- } else
+ else
hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_MOREDATA);
dev_queue_xmit(skb);