2678fefedb
The change I put into copy_thread() just papered over the real problem. When we are looking to see if we should do a syscall restart, when deliverying a signal, we should only interpret the syscall return value as an error if the carry condition code(s) are set. Otherwise it's a success return. Also, sigreturn paths should do a pt_regs_clear_trap_type(). It turns out that doing a syscall restart when returning from a fork() does and should happen, from time to time. Even if copy_thread() returns success, copy_process() can still unwind and signal -ERESTARTNOINTR in the parent. Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
boot | ||
kernel | ||
lib | ||
math-emu | ||
mm | ||
oprofile | ||
prom | ||
Kconfig | ||
Kconfig.debug | ||
Makefile | ||
defconfig |