diff options
author | Luis Carlos Cobo <luisca@cozybit.com> | 2008-02-29 18:04:13 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-06 16:40:51 -0500 |
commit | cfa22c716f65b4d286a68aeacee4a7361a4035e6 (patch) | |
tree | 52c9c31b7f77b06daa504e283aa73da41be1e6aa /net/mac80211/mesh_hwmp.c | |
parent | 89a1ad6990d884796c5280d13aa58d216dffa08d (diff) |
mac80211: always force mesh_path deletions
Postponing the deletion is not really useful anymore.
Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mesh_hwmp.c')
-rw-r--r-- | net/mac80211/mesh_hwmp.c | 8 |
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); |
857 | endmpathtimer: | 853 | endmpathtimer: |
858 | rcu_read_unlock(); | 854 | rcu_read_unlock(); |
859 | if (delete) | ||
860 | mesh_path_del(mpath->dst, mpath->dev, false); | ||
861 | } | 855 | } |