summaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh_plink.c
diff options
context:
space:
mode:
authorMarco Porsch <marco@cozybit.com>2013-10-15 12:29:24 +0200
committerJohannes Berg <johannes.berg@intel.com>2013-10-28 15:05:26 +0100
commit446075d76b6cc48ed15c515e836dd1a1f25f4c3d (patch)
tree8e0029fb0d6bddf726c17fe141cc64072f3c4722 /net/mac80211/mesh_plink.c
parentmac80211: Remove check for offchannel state when waking netdev queues (diff)
downloadlinux-446075d76b6cc48ed15c515e836dd1a1f25f4c3d.tar.xz
linux-446075d76b6cc48ed15c515e836dd1a1f25f4c3d.zip
mac80211: fixes for mesh powersave logic
This patch fixes errors in the mesh powersave logic which cause that remote peers do not get peer power mode change notifications and mesh peer service periods (MPSPs) got stuck. When closing a peer link, set the (now invalid) peer-specific power mode to 'unknown'. Avoid overhead when local power mode is unchanged. Reliably clear MPSP flags on peering status update. Avoid MPSP flags getting stuck by not requesting a further MPSP ownership if we already are an MPSP owner. Signed-off-by: Marco Porsch <marco@cozybit.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mesh_plink.c')
-rw-r--r--net/mac80211/mesh_plink.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 6b65d5055f5b..4301aa5aa227 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -222,7 +222,8 @@ static u32 __mesh_plink_deactivate(struct sta_info *sta)
mesh_path_flush_by_nexthop(sta);
ieee80211_mps_sta_status_update(sta);
- changed |= ieee80211_mps_local_status_update(sdata);
+ changed |= ieee80211_mps_set_sta_local_pm(sta,
+ NL80211_MESH_POWER_UNKNOWN);
return changed;
}