summaryrefslogtreecommitdiff
path: root/arch/m68knommu/platform/68328
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-10-11 23:29:28 -0400
committerGeert Uytterhoeven <geert@linux-m68k.org>2011-01-07 14:06:59 +0100
commitd1574df7e01d427c2ed80ada11433a72907ca472 (patch)
treea2009894be6fc3c429fbec70e15cf1e0d4485a5e /arch/m68knommu/platform/68328
parent710e91e455caf5cfec02892d667b41f312ec166c (diff)
m68knommu: Handle multiple pending signals
we shouldn't bugger off to userland when there still are pending signals; among other things it makes e.g. SIGSEGV triggered by failure to build a sigframe to be delivered _now_ and not when we hit the next syscall or interrupt. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68knommu/platform/68328')
-rw-r--r--arch/m68knommu/platform/68328/entry.S4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/m68knommu/platform/68328/entry.S b/arch/m68knommu/platform/68328/entry.S
index 6eeb635fab7e..240a7a6e25c8 100644
--- a/arch/m68knommu/platform/68328/entry.S
+++ b/arch/m68knommu/platform/68328/entry.S
@@ -106,6 +106,7 @@ Luser_return:
movel %sp,%d1 /* get thread_info pointer */
andl #-THREAD_SIZE,%d1
movel %d1,%a2
+1:
move %a2@(TI_FLAGS),%d1 /* thread_info->flags */
andl #_TIF_WORK_MASK,%d1
jne Lwork_to_do
@@ -124,8 +125,7 @@ Lsignal_return:
addql #4,%sp
RESTORE_SWITCH_STACK
addql #4,%sp
-Lreturn:
- RESTORE_ALL
+ jra 1b
/*
* This is the main interrupt handler, responsible for calling process_int()