From: David S. Miller Date: Thu, 1 May 2008 10:30:22 +0000 (-0700) Subject: sparc64: Fix syscall restart, for real... X-Git-Tag: v2.6.26-rc1~6^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2678fefedbbc03a3ae6f5c254791bf147d6c52fd;p=pandora-kernel.git sparc64: Fix syscall restart, for real... 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 --- Reading git-diff-tree failed