Subject: Re: kern/37437: signal problems in linux threads
To: None <gnats-bugs@NetBSD.org>
From: Arto Huusko <email@example.com>
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