summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorChun-Yeow Yeoh <yeohchunyeow@gmail.com>2012-09-14 14:18:31 +0800
committerJohannes Berg <johannes.berg@intel.com>2012-09-14 14:25:16 +0200
commit9385d04f2872057a2029901190391fe192b18693 (patch)
tree6da5ee5fa8dc2831dd6e91acb77bbd9f848e7967 /net
parent5d8e4237d2dc73b51ac66dc612c5c42dd7424479 (diff)
downloadlinux-3.10-9385d04f2872057a2029901190391fe192b18693.tar.gz
linux-3.10-9385d04f2872057a2029901190391fe192b18693.tar.bz2
linux-3.10-9385d04f2872057a2029901190391fe192b18693.zip
mac80211: allow re-open the blocked peer link in mesh
Peer link which is blocked using the "iw mesh0 station set <MAC addr> plink_action block" is previously not able to re-open using "iw mesh0 station set <MAC addr> plink_action open". This patch is intended to solve this. If the station plink state remains at OPN_SNT once open, try block and open again should solve this problem. Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-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 9d7ad366ef0..3ab34d81689 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -537,7 +537,8 @@ int mesh_plink_open(struct sta_info *sta)
spin_lock_bh(&sta->lock);
get_random_bytes(&llid, 2);
sta->llid = llid;
- if (sta->plink_state != NL80211_PLINK_LISTEN) {
+ if (sta->plink_state != NL80211_PLINK_LISTEN &&
+ sta->plink_state != NL80211_PLINK_BLOCKED) {
spin_unlock_bh(&sta->lock);
return -EBUSY;
}