Subject: Re: kern/37437: signal problems in linux threads
To: None <gnats-bugs@NetBSD.org>
From: Arto Huusko <arto.huusko@pp2.inet.fi>
List: netbsd-bugs
Date: 11/27/2007 07:22:53
Andrew Doran wrote:

>  o Remove the back-calls to sendsig_reset() from the delivery routines.
>  o Don't cover the delivery routines with p_smutex.
>  o Have kpsendsig() do sendsig_reset()'s job before we call down to the
>    delivery routine, and unlock before we call down.

kpsendsig() seems to receive the returnmask as a pointer to the LWP's
sigmask sigset. If kpsendsig is to call sendsig_reset(), it must make
a copy of that sigset before calling sendsig_reset(), and pass that
copy to the delivery routine, in order to avoid (for all emulations,
then) problem fixed in compat/linux32/arch/amd64/linux32_machdep.c
revision 1.13.