]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
m68k: Missing syscall_trace() on sigreturn
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 12 Oct 2010 03:13:51 +0000 (23:13 -0400)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Fri, 7 Jan 2011 13:01:35 +0000 (14:01 +0100)
If we leave sigreturn via ret_from_signal, we end up with syscall
trace only on entry, leading to very unhappy strace, among other
things.  Note that this means different behaviours for signals
delivered while we were in pagefault and for ones delivered while
we were in interrupt...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/kernel/entry.S

index 4e49f57776967cc2eb545810176fae3a25cc64b1..1559dea36e5581f62bf2d8b4b1fe6c6da37308f4 100644 (file)
@@ -99,7 +99,10 @@ do_trace_exit:
        jra     .Lret_from_exception
 
 ENTRY(ret_from_signal)
-       RESTORE_SWITCH_STACK
+       tstb    %curptr@(TASK_INFO+TINFO_FLAGS+2)
+       jge     1f
+       jbsr    syscall_trace
+1:     RESTORE_SWITCH_STACK
        addql   #4,%sp
 /* on 68040 complete pending writebacks if any */
 #ifdef CONFIG_M68040