Merge branch 'spectre' of git://git.armlinux.org.uk/~rmk/linux-arm
[linux-2.6-block.git] / arch / arm / vfp / vfpmodule.c
index 15bc3cf2a7fdc5edbb09ad7caa43714992da008f..ee7b07938dd59311f47fe5b385bcc27bfa4878f8 100644 (file)
@@ -216,14 +216,6 @@ static struct notifier_block vfp_notifier_block = {
  */
 static void vfp_raise_sigfpe(unsigned int sicode, struct pt_regs *regs)
 {
-       siginfo_t info;
-
-       memset(&info, 0, sizeof(info));
-
-       info.si_signo = SIGFPE;
-       info.si_code = sicode;
-       info.si_addr = (void __user *)(instruction_pointer(regs) - 4);
-
        /*
         * This is the same as NWFPE, because it's not clear what
         * this is used for
@@ -231,7 +223,9 @@ static void vfp_raise_sigfpe(unsigned int sicode, struct pt_regs *regs)
        current->thread.error_code = 0;
        current->thread.trap_no = 6;
 
-       send_sig_info(SIGFPE, &info, current);
+       send_sig_fault(SIGFPE, sicode,
+                      (void __user *)(instruction_pointer(regs) - 4),
+                      current);
 }
 
 static void vfp_panic(char *reason, u32 inst)
@@ -257,7 +251,7 @@ static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_
 
        if (exceptions == VFP_EXCEPTION_ERROR) {
                vfp_panic("unhandled bounce", inst);
-               vfp_raise_sigfpe(FPE_FIXME, regs);
+               vfp_raise_sigfpe(FPE_FLTINV, regs);
                return;
        }