> On 8. Oct 2023, at 15:23, Andrew Doran <a...@netbsd.org> wrote:
> 
> Module Name: src
> Committed By: ad
> Date: Sun Oct  8 13:23:05 UTC 2023
> 
> Modified Files:
> src/sys/kern: kern_condvar.c kern_sleepq.c kern_timeout.c
>    kern_turnstile.c sys_lwp.c sys_select.c
> src/sys/rump/librump/rumpkern: sleepq.c
> src/sys/sys: sleepq.h syncobj.h
> 
> Log Message:
> Ensure that an LWP that has taken a legitimate wakeup never produces an
> error code from sleepq_block().  Then, it's possible to make cv_signal()
> work as expected and only ever wake a singular LWP.
> 
> 
> To generate a diff of this commit:
...
> cvs rdiff -u -r1.63 -r1.64 src/sys/kern/sys_select.c

-    sleepq_unsleep(l, false);
+    sleepq_remove(l->l_sleepq, l, true);
    }
   }
   mutex_spin_exit(lock);

Looks like sleepq_remove() unlocks l->l_mutex == lock and
then mutex_spin_exit(lock) will unlock an unlocked mutex.

--
J. Hannken-Illjes - hann...@mailbox.org

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to