diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-11 23:13:51 -0400 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2011-01-07 08:01:35 -0500 |
commit | bd6f56a75bb2a65b3a1b8d14a9787fdaadae71c1 (patch) | |
tree | 72be570d5cd48b01043c52258777731cc1be73eb /arch/m68k/kernel/entry.S | |
parent | ea52b58ccbda49aeb23eb424ce05bba3cb0bc976 (diff) |
m68k: Missing syscall_trace() on sigreturn
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>
Diffstat (limited to 'arch/m68k/kernel/entry.S')
-rw-r--r-- | arch/m68k/kernel/entry.S | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S index 4e49f5777696..1559dea36e55 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S | |||
@@ -99,7 +99,10 @@ do_trace_exit: | |||
99 | jra .Lret_from_exception | 99 | jra .Lret_from_exception |
100 | 100 | ||
101 | ENTRY(ret_from_signal) | 101 | ENTRY(ret_from_signal) |
102 | RESTORE_SWITCH_STACK | 102 | tstb %curptr@(TASK_INFO+TINFO_FLAGS+2) |
103 | jge 1f | ||
104 | jbsr syscall_trace | ||
105 | 1: RESTORE_SWITCH_STACK | ||
103 | addql #4,%sp | 106 | addql #4,%sp |
104 | /* on 68040 complete pending writebacks if any */ | 107 | /* on 68040 complete pending writebacks if any */ |
105 | #ifdef CONFIG_M68040 | 108 | #ifdef CONFIG_M68040 |