Messages in this thread | | | Date | Mon, 11 Oct 2010 23:02:24 +0100 | From | Al Viro <> | Subject | Re: aranym bug, manifests as "ida_remove called for id=13" on recent kernels |
| |
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...
| |