summaryrefslogtreecommitdiff
path: root/pimd/pim_instance.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-05-11 18:39:09 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-05-11 18:39:09 -0400
commit48d331e7ddfbb2a4fc150497ae3b89b1279a14af (patch)
tree4b04efddfd308dd78ee1b9686357758ab3bb39d0 /pimd/pim_instance.c
parent26bb1fd528d92d52ecdf94e070d43e69d6f2d32b (diff)
pimd: Clean up rpf_hash *after* upstream cleanup
Cleanup the pim->rpf_hash after upstream cleanup is done since upstream cleanup uses the rpf_hash to cleanup itself. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_instance.c')
-rw-r--r--pimd/pim_instance.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c
index ab4ffc26ae..7e5bb34e31 100644
--- a/pimd/pim_instance.c
+++ b/pimd/pim_instance.c
@@ -35,13 +35,6 @@
static void pim_instance_terminate(struct pim_instance *pim)
{
- /* Traverse and cleanup rpf_hash */
- if (pim->rpf_hash) {
- hash_clean(pim->rpf_hash, (void *)pim_rp_list_hash_clean);
- hash_free(pim->rpf_hash);
- pim->rpf_hash = NULL;
- }
-
if (pim->ssm_info) {
pim_ssm_terminate(pim->ssm_info);
pim->ssm_info = NULL;
@@ -54,6 +47,13 @@ static void pim_instance_terminate(struct pim_instance *pim)
pim_upstream_terminate(pim);
+ /* Traverse and cleanup rpf_hash */
+ if (pim->rpf_hash) {
+ hash_clean(pim->rpf_hash, (void *)pim_rp_list_hash_clean);
+ hash_free(pim->rpf_hash);
+ pim->rpf_hash = NULL;
+ }
+
pim_oil_terminate(pim);
pim_if_terminate(pim);