diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-05-11 18:39:09 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-05-11 18:39:09 -0400 |
| commit | 48d331e7ddfbb2a4fc150497ae3b89b1279a14af (patch) | |
| tree | 4b04efddfd308dd78ee1b9686357758ab3bb39d0 /pimd/pim_instance.c | |
| parent | 26bb1fd528d92d52ecdf94e070d43e69d6f2d32b (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.c | 14 |
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); |
