diff options
Diffstat (limited to 'drivers/staging/batman-adv/originator.c')
-rw-r--r-- | drivers/staging/batman-adv/originator.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/staging/batman-adv/originator.c b/drivers/staging/batman-adv/originator.c index 8bef4681bf82..89ec02100a3b 100644 --- a/drivers/staging/batman-adv/originator.c +++ b/drivers/staging/batman-adv/originator.c @@ -26,6 +26,7 @@ #include "hash.h" #include "translation-table.h" #include "routing.h" +#include "gateway_client.h" #include "hard-interface.h" #include "unicast.h" #include "soft-interface.h" @@ -279,6 +280,8 @@ static void _purge_orig(struct bat_priv *bat_priv) orig_node = bucket->data; if (purge_orig_node(bat_priv, orig_node)) { + if (orig_node->gw_flags) + gw_node_delete(bat_priv, orig_node); hash_remove_bucket(bat_priv->orig_hash, &hashit); free_orig_node(orig_node, bat_priv); } @@ -290,6 +293,9 @@ static void _purge_orig(struct bat_priv *bat_priv) spin_unlock_bh(&bat_priv->orig_hash_lock); + gw_node_purge(bat_priv); + gw_election(bat_priv); + softif_neigh_purge(bat_priv); } |