diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-02-19 20:07:21 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-02-29 15:37:26 -0500 |
commit | 836341a70471ba77657b0b420dd7eea3c30a038b (patch) | |
tree | f27af297dd49c1aa5d6df3cd496b8b5fb7e43c2a /net/mac80211/rx.c | |
parent | d2259243a19894eee06c16e278adfea81dc42bd9 (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.c | 7 |
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); |