Assert that cc_exec_drain(cc, direct) is NULL before assigning a new value.
Suggested by: markj@ Tested by: callout_test MFC after: 1 week Sponsored by: Mellanox Technologies // NVIDIA Networking
This commit is contained in:
parent
0d0053d7ed
commit
624677fad7
@ -1269,6 +1269,9 @@ _callout_stop_safe(struct callout *c, int flags, callout_func_t *drain)
|
||||
CTR3(KTR_CALLOUT, "postponing stop %p func %p arg %p",
|
||||
c, c->c_func, c->c_arg);
|
||||
if (drain) {
|
||||
KASSERT(cc_exec_drain(cc, direct) == NULL,
|
||||
("callout drain function already set to %p",
|
||||
cc_exec_drain(cc, direct)));
|
||||
cc_exec_drain(cc, direct) = drain;
|
||||
}
|
||||
CC_UNLOCK(cc);
|
||||
@ -1277,6 +1280,9 @@ _callout_stop_safe(struct callout *c, int flags, callout_func_t *drain)
|
||||
CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p",
|
||||
c, c->c_func, c->c_arg);
|
||||
if (drain) {
|
||||
KASSERT(cc_exec_drain(cc, direct) == NULL,
|
||||
("callout drain function already set to %p",
|
||||
cc_exec_drain(cc, direct)));
|
||||
cc_exec_drain(cc, direct) = drain;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user