From 34b3ac241f0d534656c1790bea39add47646ee05 Mon Sep 17 00:00:00 2001 From: dann frazier Date: Tue, 1 Jun 2010 15:58:28 +0000 Subject: [PATCH] [hppa] clear floating point exception flag on SIGFPE signal (Closes: #559406) svn path=/dists/sid/linux-2.6/; revision=15820 --- debian/changelog | 7 +++++ .../clear-fp-exception-flag-on-SIGFPE.patch | 28 +++++++++++++++++++ debian/patches/series/16 | 1 + 3 files changed, 36 insertions(+) create mode 100644 debian/patches/bugfix/parisc/clear-fp-exception-flag-on-SIGFPE.patch create mode 100644 debian/patches/series/16 diff --git a/debian/changelog b/debian/changelog index 885816094..784fd199d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +linux-2.6 (2.6.32-16) UNRELEASED; urgency=low + + * [hppa] clear floating point exception flag on SIGFPE signal + (Closes: #559406) + + -- dann frazier Tue, 01 Jun 2010 09:23:57 -0600 + linux-2.6 (2.6.32-15) unstable; urgency=low [ Ben Hutchings ] diff --git a/debian/patches/bugfix/parisc/clear-fp-exception-flag-on-SIGFPE.patch b/debian/patches/bugfix/parisc/clear-fp-exception-flag-on-SIGFPE.patch new file mode 100644 index 000000000..5e4449ecf --- /dev/null +++ b/debian/patches/bugfix/parisc/clear-fp-exception-flag-on-SIGFPE.patch @@ -0,0 +1,28 @@ +commit 550f0d922286556c7ea43974bb7921effb5a5278 +Author: Helge Deller +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 + Signed-off-by: Kyle McMartin + +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); diff --git a/debian/patches/series/16 b/debian/patches/series/16 new file mode 100644 index 000000000..d4a0a1239 --- /dev/null +++ b/debian/patches/series/16 @@ -0,0 +1 @@ ++ bugfix/parisc/clear-fp-exception-flag-on-SIGFPE.patch