aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-02-19 20:07:21 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-02-29 15:37:26 -0500
commit836341a70471ba77657b0b420dd7eea3c30a038b (patch)
treef27af297dd49c1aa5d6df3cd496b8b5fb7e43c2a /net/mac80211/rx.c
parentd2259243a19894eee06c16e278adfea81dc42bd9 (diff)
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)
598 sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev); 598 sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev);
599 if (sdata->bss) 599 if (sdata->bss)
600 atomic_dec(&sdata->bss->num_sta_ps); 600 atomic_dec(&sdata->bss->num_sta_ps);
601 sta->flags &= ~(WLAN_STA_PS | WLAN_STA_TIM | WLAN_STA_PSPOLL); 601 sta->flags &= ~(WLAN_STA_PS | WLAN_STA_PSPOLL);
602 if (!skb_queue_empty(&sta->ps_tx_buf)) { 602 if (!skb_queue_empty(&sta->ps_tx_buf)) {
603 if (sdata->bss) 603 if (sdata->bss)
604 bss_tim_clear(local, sdata->bss, sta->aid); 604 bss_tim_clear(local, sdata->bss, sta->aid);
@@ -938,10 +938,9 @@ ieee80211_rx_h_ps_poll(struct ieee80211_txrx_data *rx)
938 938
939 /* Use MoreData flag to indicate whether there are more 939 /* Use MoreData flag to indicate whether there are more
940 * buffered frames for this STA */ 940 * buffered frames for this STA */
941 if (no_pending_pkts) { 941 if (no_pending_pkts)
942 hdr->frame_control &= cpu_to_le16(~IEEE80211_FCTL_MOREDATA); 942 hdr->frame_control &= cpu_to_le16(~IEEE80211_FCTL_MOREDATA);
943 rx->sta->flags &= ~WLAN_STA_TIM; 943 else
944 } else
945 hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_MOREDATA); 944 hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_MOREDATA);
946 945
947 dev_queue_xmit(skb); 946 dev_queue_xmit(skb);