From f72fc4236e1d0d267f799faeac7d134edb8f1200 Mon Sep 17 00:00:00 2001 From: Helmut Schaa Date: Mon, 30 Jan 2012 15:18:00 +0100 Subject: [PATCH] --- yaml --- r: 290005 b: refs/heads/master c: 608383bfc04aa222c3e9e896c32f56a5e5deaff0 h: refs/heads/master i: 290003: 659f159de78ff0ace99d961037c14a18d231b892 v: v3 --- [refs] | 2 +- trunk/net/mac80211/rx.c | 8 ++------ trunk/net/mac80211/sta_info.c | 4 +++- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index e41ab3463dd7..e69219c1f8cd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2ab694d302b489c5aa49c360dc97149b77c96586 +refs/heads/master: 608383bfc04aa222c3e9e896c32f56a5e5deaff0 diff --git a/trunk/net/mac80211/rx.c b/trunk/net/mac80211/rx.c index 73d213810a37..ab29253fb4f2 100644 --- a/trunk/net/mac80211/rx.c +++ b/trunk/net/mac80211/rx.c @@ -1145,19 +1145,15 @@ static void ap_sta_ps_start(struct sta_info *sta) static void ap_sta_ps_end(struct sta_info *sta) { - struct ieee80211_sub_if_data *sdata = sta->sdata; - - atomic_dec(&sdata->bss->num_sta_ps); - #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %pM aid %d exits power save mode\n", - sdata->name, sta->sta.addr, sta->sta.aid); + sta->sdata->name, sta->sta.addr, sta->sta.aid); #endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ if (test_sta_flag(sta, WLAN_STA_PS_DRIVER)) { #ifdef CONFIG_MAC80211_VERBOSE_PS_DEBUG printk(KERN_DEBUG "%s: STA %pM aid %d driver-ps-blocked\n", - sdata->name, sta->sta.addr, sta->sta.aid); + sta->sdata->name, sta->sta.addr, sta->sta.aid); #endif /* CONFIG_MAC80211_VERBOSE_PS_DEBUG */ return; } diff --git a/trunk/net/mac80211/sta_info.c b/trunk/net/mac80211/sta_info.c index 0c79593b1bbf..1fb4770a7d13 100644 --- a/trunk/net/mac80211/sta_info.c +++ b/trunk/net/mac80211/sta_info.c @@ -997,9 +997,11 @@ EXPORT_SYMBOL(ieee80211_find_sta); static void clear_sta_ps_flags(void *_sta) { struct sta_info *sta = _sta; + struct ieee80211_sub_if_data *sdata = sta->sdata; clear_sta_flag(sta, WLAN_STA_PS_DRIVER); - clear_sta_flag(sta, WLAN_STA_PS_STA); + if (test_and_clear_sta_flag(sta, WLAN_STA_PS_STA)) + atomic_dec(&sdata->bss->num_sta_ps); } /* powersave support code */