aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh_hwmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mesh_hwmp.c')
-rw-r--r--net/mac80211/mesh_hwmp.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index c8c7d9aa4b94..324ebea10c4c 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -828,7 +828,6 @@ void mesh_path_timer(unsigned long data)
828{ 828{
829 struct ieee80211_sub_if_data *sdata; 829 struct ieee80211_sub_if_data *sdata;
830 struct mesh_path *mpath; 830 struct mesh_path *mpath;
831 bool delete = false;
832 831
833 rcu_read_lock(); 832 rcu_read_lock();
834 mpath = (struct mesh_path *) data; 833 mpath = (struct mesh_path *) data;
@@ -837,10 +836,7 @@ void mesh_path_timer(unsigned long data)
837 goto endmpathtimer; 836 goto endmpathtimer;
838 spin_lock_bh(&mpath->state_lock); 837 spin_lock_bh(&mpath->state_lock);
839 sdata = IEEE80211_DEV_TO_SUB_IF(mpath->dev); 838 sdata = IEEE80211_DEV_TO_SUB_IF(mpath->dev);
840 if (mpath->flags & MESH_PATH_DELETE) { 839 if (mpath->flags & MESH_PATH_RESOLVED ||
841 mpath->flags = 0;
842 delete = true;
843 } else if (mpath->flags & MESH_PATH_RESOLVED ||
844 (!(mpath->flags & MESH_PATH_RESOLVING))) 840 (!(mpath->flags & MESH_PATH_RESOLVING)))
845 mpath->flags &= ~(MESH_PATH_RESOLVING | MESH_PATH_RESOLVED); 841 mpath->flags &= ~(MESH_PATH_RESOLVING | MESH_PATH_RESOLVED);
846 else if (mpath->discovery_retries < max_preq_retries(sdata)) { 842 else if (mpath->discovery_retries < max_preq_retries(sdata)) {
@@ -856,6 +852,4 @@ void mesh_path_timer(unsigned long data)
856 spin_unlock_bh(&mpath->state_lock); 852 spin_unlock_bh(&mpath->state_lock);
857endmpathtimer: 853endmpathtimer:
858 rcu_read_unlock(); 854 rcu_read_unlock();
859 if (delete)
860 mesh_path_del(mpath->dst, mpath->dev, false);
861} 855}