[PATCH] i386: Ignore masked FPU exceptions
authorChuck Ebbert <76306.1226@compuserve.com>
Tue, 13 Sep 2005 08:55:41 +0000 (04:55 -0400)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 13 Sep 2005 16:59:04 +0000 (09:59 -0700)
Masked FPU exceptions should obviously not happen in the first place,
but if they do, ignoring them seems to be the right thing to do.

Although there is no documentation available for Cyrix MII, I did find
erratum F-7 for Winchip C6, "FPU instruction may result in spurious
exception under certain conditions" which seems to indicate that this
can happen.

That would also explain the behaviour Ondrej Zary reported on the MII.

Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/traps.c

index 09a58cb6daa7050e018496a127458241f2fa0e30..431a551e46ea5f191498eaa6fbe7a6fc7d7273fa 100644 (file)
@@ -807,8 +807,9 @@ void math_error(void __user *eip)
        cwd = get_fpu_cwd(task);
        swd = get_fpu_swd(task);
        switch (swd & ~cwd & 0x3f) {
-               case 0x000:
-               default:
+               case 0x000: /* No unmasked exception */
+                       return;
+               default:    /* Multiple exceptions */
                        break;
                case 0x001: /* Invalid Op */
                        /*