29 lines
1.1 KiB
Diff
29 lines
1.1 KiB
Diff
commit 550f0d922286556c7ea43974bb7921effb5a5278
|
|
Author: Helge Deller <deller@gmx.de>
|
|
Date: Mon May 3 20:44:21 2010 +0000
|
|
|
|
parisc: clear floating point exception flag on SIGFPE signal
|
|
|
|
Clear the floating point exception flag before returning to
|
|
user space. This is needed, else the libc trampoline handler
|
|
may hit the same SIGFPE again while building up a trampoline
|
|
to a signal handler.
|
|
|
|
Fixes debian bug #559406.
|
|
|
|
Signed-off-by: Helge Deller <deller@gmx.de>
|
|
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
|
|
|
|
diff --git a/arch/parisc/math-emu/decode_exc.c b/arch/parisc/math-emu/decode_exc.c
|
|
index 3ca1c61..27a7492 100644
|
|
--- a/arch/parisc/math-emu/decode_exc.c
|
|
+++ b/arch/parisc/math-emu/decode_exc.c
|
|
@@ -342,6 +342,7 @@ decode_fpu(unsigned int Fpu_register[], unsigned int trap_counts[])
|
|
return SIGNALCODE(SIGFPE, FPE_FLTINV);
|
|
case DIVISIONBYZEROEXCEPTION:
|
|
update_trap_counts(Fpu_register, aflags, bflags, trap_counts);
|
|
+ Clear_excp_register(exception_index);
|
|
return SIGNALCODE(SIGFPE, FPE_FLTDIV);
|
|
case INEXACTEXCEPTION:
|
|
update_trap_counts(Fpu_register, aflags, bflags, trap_counts);
|