- if (sta->plink_state == LISTEN || sta->plink_state == BLOCKED) {
- mesh_plink_fsm_restart(sta);
- spin_unlock_bh(&sta->plink_lock);
- return 0;
- } else if (sta->plink_state == ESTAB) {
- __mesh_plink_deactivate(sta);
- /* The timer should not be running */
- mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata));
- } else if (!mod_plink_timer(sta, dot11MeshHoldingTimeout(sdata)))
- sta->ignore_plink_timer = true;
-
- sta->plink_state = HOLDING;
- llid = sta->llid;
- plid = sta->plid;
- spin_unlock_bh(&sta->plink_lock);
- mesh_plink_frame_tx(sta->sdata->dev, PLINK_CLOSE, sta->addr, llid,
- plid, reason);
- return 0;
-}
-
-void mesh_rx_plink_frame(struct net_device *dev, struct ieee80211_mgmt *mgmt,