mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-13 14:40:22 +00:00
When running with debug.mpsafenet=0, initialize IP multicast routing
callouts as non-CALLOUT_MPSAFE. Otherwise, they may trigger an assertion regarding Giant if they enter other parts of the stack from the callout. MFC after: 3 days Reported by: Dikshie < dikshie at ppk dot itb dot ac dot id >
This commit is contained in:
parent
028a5b9259
commit
fcf4e3a168
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=136226
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user