mac80211: allow re-open the blocked peer link in mesh
authorChun-Yeow Yeoh <yeohchunyeow@gmail.com>
Fri, 14 Sep 2012 06:18:31 +0000 (14:18 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 14 Sep 2012 12:25:16 +0000 (14:25 +0200)
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>
net/mac80211/mesh_plink.c

index 9d7ad366ef09a37cb9031c0b4eeb754ec7bb1217..3ab34d81689753e0beaf7af4a9c7c806f9da6915 100644 (file)
@@ -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;
        }