Commit 0988831a authored by Dave Jones's avatar Dave Jones Committed by Linus Torvalds

[PATCH] Fix x87 FPU exception status check

From Dave Richards (drichards@mahinetworks.com)

  "While diagnosing an MMX/FPU problem I found a minor problem in the
   code which diagnoses and generates signals for FPU exceptions.  On
   x86 Stack Fault Exception are a subclass of Invalid Operation.  Thus,
   the FPU status register will have both the SF and IF bits set when a
   stack fault occurs.  The code which turns FPU exceptions into signals
   was assuming IF would be clear".
parent d7b7d9cb
...@@ -629,9 +629,10 @@ void math_error(void *eip) ...@@ -629,9 +629,10 @@ void math_error(void *eip)
default: default:
break; break;
case 0x001: /* Invalid Op */ case 0x001: /* Invalid Op */
case 0x040: /* Stack Fault */ case 0x041: /* Stack Fault */
case 0x240: /* Stack Fault | Direction */ case 0x241: /* Stack Fault | Direction */
info.si_code = FPE_FLTINV; info.si_code = FPE_FLTINV;
/* Should we clear the SF or let user space do it ???? */
break; break;
case 0x002: /* Denormalize */ case 0x002: /* Denormalize */
case 0x010: /* Underflow */ case 0x010: /* Underflow */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment