Re: aranym bug, manifests as "ida_remove called for id=13" on recent kernels

Al Viro
2010-10-11T22:02:34Z

On Mon, Oct 11, 2010 at 03:24:28PM +0100, Al Viro wrote:

> BTW, any comments on signal patchset? Seems to work here, including the
> stack expansion fixes, but that's on aranym. I'll try to resurrect the
> real hardware, but that may take a while. If somebody could give it a beating
> in the meanwhile...

Oh, lovely... One more signal bug (and a lot more on m68knommu): if we
strace a process and signal is delivered during pagefault handling, you'll
lose the second call of syscall_trace() on sigreturn(). If the signal
is delivered during a syscall or during an interrupt, syscall_trace() is
called twice on sigreturn() (as it does on all platforms). Fortunately,
that's easy to fix - same as on alpha (calling syscall_trace in ret_from_signal
if we are getting traced, just before doing RESTORE_SWITCH_STACK). Will test
and post...

FWIW, on other targets we either have sys_{rt,}_sigreturn() done as normal
functons (in which case the normal logics will take care of that), or
have them return to place in (common) syscall exit path earlier than
conditional call of syscall trace (mips, score), or check flags and do
call ourselves (sparc, alpha since it had been fixed). AFAICS, m68k and
m68knommu are the only ones buggered that way. On alpha we used to have
it even worse - there we did only one call on sigreturn() unconditionally...