diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/ip_mroute.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index ca2b562..0df4807 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -598,20 +598,23 @@ get_vif_cnt(struct sioc_vif_req *req) static void ip_mrouter_reset(void) { + int callout_flag; + bzero((caddr_t)mfctable, sizeof(mfctable)); bzero((caddr_t)nexpire, sizeof(nexpire)); pim_assert = 0; mrt_api_config = 0; - callout_init(&expire_upcalls_ch, CALLOUT_MPSAFE); + callout_flag = debug_mpsafenet ? CALLOUT_MPSAFE : 0; + callout_init(&expire_upcalls_ch, callout_flag); bw_upcalls_n = 0; bzero((caddr_t)bw_meter_timers, sizeof(bw_meter_timers)); - callout_init(&bw_upcalls_ch, CALLOUT_MPSAFE); - callout_init(&bw_meter_ch, CALLOUT_MPSAFE); + callout_init(&bw_upcalls_ch, callout_flag); + callout_init(&bw_meter_ch, callout_flag); - callout_init(&tbf_reprocess_ch, CALLOUT_MPSAFE); + callout_init(&tbf_reprocess_ch, callout_flag); } static struct mtx mrouter_mtx; /* used to synch init/done work */ |