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 14:01:35 +0100 |
commit | bd6f56a75bb2a65b3a1b8d14a9787fdaadae71c1 (patch) | |
tree | 72be570d5cd48b01043c52258777731cc1be73eb /arch/m68k/kernel | |
parent | ea52b58ccbda49aeb23eb424ce05bba3cb0bc976 (diff) | |
download | op-kernel-dev-bd6f56a75bb2a65b3a1b8d14a9787fdaadae71c1.zip op-kernel-dev-bd6f56a75bb2a65b3a1b8d14a9787fdaadae71c1.tar.gz |
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')
-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 4e49f57..1559dea 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S @@ -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 |