diff options
author | Nicolas Pitre <nico@cam.org> | 2005-10-28 11:35:46 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-10-28 11:35:46 -0400 |
commit | a999cb04b4bfb4a2243383f00d5714b8d7163035 (patch) | |
tree | 951b848e666ed00b90c2ac55bce1b2664dd51c27 /arch/arm/kernel/traps.c | |
parent | dd5b295ff880d5a0699a52f84106f16702c298f2 (diff) |
[ARM] 3035/1: RISCOS compat code fix
Patch from Nicolas Pitre
From: Daniel Jacobowitz <dan@debian.org>
> I also fixed a bug that confused me greatly while trying to debug: one
> SIGILL has long been a SIGSEGV because of some broken RISCOS
> compatibility code.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/traps.c')
-rw-r--r-- | arch/arm/kernel/traps.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index f6de76e0a45d..baa09601a64e 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -345,7 +345,9 @@ static int bad_syscall(int n, struct pt_regs *regs) | |||
345 | struct thread_info *thread = current_thread_info(); | 345 | struct thread_info *thread = current_thread_info(); |
346 | siginfo_t info; | 346 | siginfo_t info; |
347 | 347 | ||
348 | if (current->personality != PER_LINUX && thread->exec_domain->handler) { | 348 | if (current->personality != PER_LINUX && |
349 | current->personality != PER_LINUX_32BIT && | ||
350 | thread->exec_domain->handler) { | ||
349 | thread->exec_domain->handler(n, regs); | 351 | thread->exec_domain->handler(n, regs); |
350 | return regs->ARM_r0; | 352 | return regs->ARM_r0; |
351 | } | 353 | } |