Re: Syscall changes registers beyond %eax, on linux-i386

george anzinger (george@mvista.com)
Sat, 21 Sep 2002 01:09:12 -0700


Richard Henderson wrote:
>
> On Fri, Sep 20, 2002 at 01:32:05AM -0700, george anzinger wrote:
> > So, is there a problem? Yes, neither the call stub macros
> > in asm/unistd.h nor those in glibc bother to list the used
> > registers beyond the third ":".
>
> No, this is not the real problem. The real problem is that if
> the program receives a signal during a system call, the kernel
> will return all the way up to entry.S, deliver the signal and
> then restart the syscall.
>
> Except the syscall will restart with the corrupted registers.
>
> Hilarity ensues.
>
I submit that BOTH of these are problems. And only the
kernel can fix the latter.

-g

-- 
George Anzinger   george@mvista.com
High-res-timers: 
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/