When isis is being shutdown the area->spf_timer thread has
special data assigned to that was never being freed.
Free this data.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
return run;
}
+void isis_spf_timer_free(void *run)
+{
+ XFREE(MTYPE_ISIS_SPF_RUN, run);
+}
+
int _isis_spf_schedule(struct isis_area *area, int level,
const char *func, const char *file, int line)
{
uint8_t *sysid,
struct isis_spftree *spftree);
+void isis_spf_timer_free(void *run);
#endif /* _ZEBRA_ISIS_SPF_H */
spftree_area_del(area);
+ if (area->spf_timer[0])
+ isis_spf_timer_free(THREAD_ARG(area->spf_timer[0]));
thread_cancel(&area->spf_timer[0]);
+ if (area->spf_timer[1])
+ isis_spf_timer_free(THREAD_ARG(area->spf_timer[1]));
thread_cancel(&area->spf_timer[1]);
spf_backoff_free(area->spf_delay_ietf[0]);
}
}
+ if (area->spf_timer[level - 1])
+ isis_spf_timer_free(THREAD_ARG(area->spf_timer[level - 1]));
+
thread_cancel(&area->spf_timer[level - 1]);
sched_debug(