20 lines
537 B
Diff
20 lines
537 B
Diff
--- sys/kern/kern_timeout.c.orig
|
|
+++ sys/kern/kern_timeout.c
|
|
@@ -1271,7 +1271,7 @@
|
|
* just wait for the current invocation to
|
|
* finish.
|
|
*/
|
|
- while (cc_exec_curr(cc, direct) == c) {
|
|
+ if (cc_exec_curr(cc, direct) == c) {
|
|
/*
|
|
* Use direct calls to sleepqueue interface
|
|
* instead of cv/msleep in order to avoid
|
|
@@ -1319,7 +1319,7 @@
|
|
|
|
/* Reacquire locks previously released. */
|
|
PICKUP_GIANT();
|
|
- CC_LOCK(cc);
|
|
+ goto again;
|
|
}
|
|
c->c_flags &= ~CALLOUT_ACTIVE;
|
|
} else if (use_lock &&
|