aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv
diff options
context:
space:
mode:
authorMarek Lindner <lindner_marek@yahoo.de>2011-01-19 14:16:10 -0500
committerMarek Lindner <lindner_marek@yahoo.de>2011-03-05 06:49:55 -0500
commit1a241a57be46cda985c7c36e24d49f67de6bfb53 (patch)
tree51e88b4e7d17331497c4aab98f281353ab3f28d9 /net/batman-adv
parentf987ed6ebd991009cd9f6190ce319e8b50d6be1f (diff)
batman-adv: free neighbors when an interface is deactivated
hardif_disable_interface() calls purge_orig_ref() to immediately free all neighbors associated with the interface that is going down. purge_orig_neighbors() checked if the interface status is IF_INACTIVE which is set to IF_NOT_IN_USE shortly before calling purge_orig_ref(). Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Diffstat (limited to 'net/batman-adv')
-rw-r--r--net/batman-adv/originator.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 6cb9af3f89e5..899d4943d8ad 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -224,10 +224,15 @@ static bool purge_orig_neighbors(struct bat_priv *bat_priv,
224 if ((time_after(jiffies, 224 if ((time_after(jiffies,
225 neigh_node->last_valid + PURGE_TIMEOUT * HZ)) || 225 neigh_node->last_valid + PURGE_TIMEOUT * HZ)) ||
226 (neigh_node->if_incoming->if_status == IF_INACTIVE) || 226 (neigh_node->if_incoming->if_status == IF_INACTIVE) ||
227 (neigh_node->if_incoming->if_status == IF_NOT_IN_USE) ||
227 (neigh_node->if_incoming->if_status == IF_TO_BE_REMOVED)) { 228 (neigh_node->if_incoming->if_status == IF_TO_BE_REMOVED)) {
228 229
229 if (neigh_node->if_incoming->if_status == 230 if ((neigh_node->if_incoming->if_status ==
230 IF_TO_BE_REMOVED) 231 IF_INACTIVE) ||
232 (neigh_node->if_incoming->if_status ==
233 IF_NOT_IN_USE) ||
234 (neigh_node->if_incoming->if_status ==
235 IF_TO_BE_REMOVED))
231 bat_dbg(DBG_BATMAN, bat_priv, 236 bat_dbg(DBG_BATMAN, bat_priv,
232 "neighbor purge: originator %pM, " 237 "neighbor purge: originator %pM, "
233 "neighbor: %pM, iface: %s\n", 238 "neighbor: %pM, iface: %s\n",