summaryrefslogtreecommitdiffstats
path: root/arch/m68k/kernel
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-10-11 23:13:51 -0400
committerGeert Uytterhoeven <geert@linux-m68k.org>2011-01-07 14:01:35 +0100
commitbd6f56a75bb2a65b3a1b8d14a9787fdaadae71c1 (patch)
tree72be570d5cd48b01043c52258777731cc1be73eb /arch/m68k/kernel
parentea52b58ccbda49aeb23eb424ce05bba3cb0bc976 (diff)
downloadop-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.S5
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
OpenPOWER on IntegriCloud