freebsd_network: Fix callout_active checking in callout_stop.

We have to perform the "due" check after checking callout_active,
because due is set to -1 while the callout is actually active.
This commit is contained in:
Augustin Cavalier
2022-07-07 14:43:27 -04:00
parent fbff149ce2
commit 631f505f82
+3 -3
View File
@@ -219,9 +219,6 @@ _callout_stop_safe(struct callout *c, int safe)
MutexLocker locker(sLock);
if (c->due <= 0)
return -1;
if (callout_active(c)) {
if (safe) {
locker.Unlock();
@@ -231,6 +228,9 @@ _callout_stop_safe(struct callout *c, int safe)
return 0;
}
if (c->due <= 0)
return -1;
// this timer is scheduled, cancel it
list_remove_item(&sTimers, c);
c->due = 0;