Index: kern_lock.c =================================================================== RCS file: /cvs/src/sys/kern/kern_lock.c,v diff -u -p -r1.78 kern_lock.c --- kern_lock.c 31 May 2025 10:24:50 -0000 1.78 +++ kern_lock.c 1 Jun 2025 03:38:09 -0000 @@ -534,13 +534,13 @@ pc_cons_leave(struct pc_lock *pcl, unsig membar_consumer(); gen = pcl->pcl_gen; - if (gen & 1) { - do { - CPU_BUSY_CYCLE(); - gen = pcl->pcl_gen; - } while (gen & 1); - } else if (gen == *genp) + if (gen == *genp) return (0); + + while (gen & 1) { + CPU_BUSY_CYCLE(); + gen = pcl->pcl_gen; + } *genp = gen; return (EBUSY);