diff options
author | Marek Lindner <lindner_marek@yahoo.de> | 2011-01-19 14:16:10 -0500 |
---|---|---|
committer | Marek Lindner <lindner_marek@yahoo.de> | 2011-03-05 06:49:55 -0500 |
commit | 1a241a57be46cda985c7c36e24d49f67de6bfb53 (patch) | |
tree | 51e88b4e7d17331497c4aab98f281353ab3f28d9 /net/batman-adv/originator.c | |
parent | f987ed6ebd991009cd9f6190ce319e8b50d6be1f (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/originator.c')
-rw-r--r-- | net/batman-adv/originator.c | 9 |
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", |