diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -587,7 +587,7 @@ * owner stops running or the state of the lock changes. */ owner = lv_mtx_owner(v); - if (TD_IS_RUNNING(owner)) { + if (__predict_true(m != &Giant) && TD_IS_RUNNING(owner)) { if (LOCK_LOG_TEST(&m->lock_object, 0)) CTR3(KTR_LOCK, "%s: spinning on %p held by %p", @@ -630,7 +630,7 @@ * again. */ owner = lv_mtx_owner(v); - if (TD_IS_RUNNING(owner)) { + if (__predict_true(m != &Giant) && TD_IS_RUNNING(owner)) { turnstile_cancel(ts); continue; }