Merge tag 'for-5.15/parisc' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[linux-2.6-microblaze.git] / arch / sparc / kernel / traps_64.c
index a850dcc..6863025 100644 (file)
@@ -107,8 +107,8 @@ void bad_trap(struct pt_regs *regs, long lvl)
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGILL, ILL_ILLTRP,
-                       (void __user *)regs->tpc, lvl);
+       force_sig_fault_trapno(SIGILL, ILL_ILLTRP,
+                              (void __user *)regs->tpc, lvl);
 }
 
 void bad_trap_tl1(struct pt_regs *regs, long lvl)
@@ -201,8 +201,7 @@ void spitfire_insn_access_exception(struct pt_regs *regs, unsigned long sfsr, un
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGSEGV, SEGV_MAPERR,
-                       (void __user *)regs->tpc, 0);
+       force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *)regs->tpc);
 out:
        exception_exit(prev_state);
 }
@@ -237,7 +236,7 @@ void sun4v_insn_access_exception(struct pt_regs *regs, unsigned long addr, unsig
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *) addr, 0);
+       force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *) addr);
 }
 
 void sun4v_insn_access_exception_tl1(struct pt_regs *regs, unsigned long addr, unsigned long type_ctx)
@@ -321,7 +320,7 @@ void spitfire_data_access_exception(struct pt_regs *regs, unsigned long sfsr, un
        if (is_no_fault_exception(regs))
                return;
 
-       force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *)sfar, 0);
+       force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *)sfar);
 out:
        exception_exit(prev_state);
 }
@@ -385,13 +384,13 @@ void sun4v_data_access_exception(struct pt_regs *regs, unsigned long addr, unsig
         */
        switch (type) {
        case HV_FAULT_TYPE_INV_ASI:
-               force_sig_fault(SIGILL, ILL_ILLADR, (void __user *)addr, 0);
+               force_sig_fault(SIGILL, ILL_ILLADR, (void __user *)addr);
                break;
        case HV_FAULT_TYPE_MCD_DIS:
-               force_sig_fault(SIGSEGV, SEGV_ACCADI, (void __user *)addr, 0);
+               force_sig_fault(SIGSEGV, SEGV_ACCADI, (void __user *)addr);
                break;
        default:
-               force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *)addr, 0);
+               force_sig_fault(SIGSEGV, SEGV_MAPERR, (void __user *)addr);
                break;
        }
 }
@@ -568,7 +567,7 @@ static void spitfire_ue_log(unsigned long afsr, unsigned long afar, unsigned lon
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGBUS, BUS_OBJERR, (void *)0, 0);
+       force_sig_fault(SIGBUS, BUS_OBJERR, (void *)0);
 }
 
 void spitfire_access_error(struct pt_regs *regs, unsigned long status_encoded, unsigned long afar)
@@ -2069,8 +2068,7 @@ void do_mcd_err(struct pt_regs *regs, struct sun4v_error_entry ent)
        /* Send SIGSEGV to the userspace process with the right signal
         * code
         */
-       force_sig_fault(SIGSEGV, SEGV_ADIDERR, (void __user *)ent.err_raddr,
-                       0);
+       force_sig_fault(SIGSEGV, SEGV_ADIDERR, (void __user *)ent.err_raddr);
 }
 
 /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
@@ -2184,7 +2182,7 @@ bool sun4v_nonresum_error_user_handled(struct pt_regs *regs,
        }
        if (attrs & SUN4V_ERR_ATTRS_PIO) {
                force_sig_fault(SIGBUS, BUS_ADRERR,
-                               (void __user *)sun4v_get_vaddr(regs), 0);
+                               (void __user *)sun4v_get_vaddr(regs));
                return true;
        }
 
@@ -2340,8 +2338,7 @@ static void do_fpe_common(struct pt_regs *regs)
                        else if (fsr & 0x01)
                                code = FPE_FLTRES;
                }
-               force_sig_fault(SIGFPE, code,
-                               (void __user *)regs->tpc, 0);
+               force_sig_fault(SIGFPE, code, (void __user *)regs->tpc);
        }
 }
 
@@ -2395,8 +2392,7 @@ void do_tof(struct pt_regs *regs)
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGEMT, EMT_TAGOVF,
-                       (void __user *)regs->tpc, 0);
+       force_sig_fault(SIGEMT, EMT_TAGOVF, (void __user *)regs->tpc);
 out:
        exception_exit(prev_state);
 }
@@ -2415,8 +2411,7 @@ void do_div0(struct pt_regs *regs)
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGFPE, FPE_INTDIV,
-                       (void __user *)regs->tpc, 0);
+       force_sig_fault(SIGFPE, FPE_INTDIV, (void __user *)regs->tpc);
 out:
        exception_exit(prev_state);
 }
@@ -2612,7 +2607,7 @@ void do_illegal_instruction(struct pt_regs *regs)
                        }
                }
        }
-       force_sig_fault(SIGILL, ILL_ILLOPC, (void __user *)pc, 0);
+       force_sig_fault(SIGILL, ILL_ILLOPC, (void __user *)pc);
 out:
        exception_exit(prev_state);
 }
@@ -2632,7 +2627,7 @@ void mem_address_unaligned(struct pt_regs *regs, unsigned long sfar, unsigned lo
        if (is_no_fault_exception(regs))
                return;
 
-       force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)sfar, 0);
+       force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)sfar);
 out:
        exception_exit(prev_state);
 }
@@ -2650,7 +2645,7 @@ void sun4v_do_mna(struct pt_regs *regs, unsigned long addr, unsigned long type_c
        if (is_no_fault_exception(regs))
                return;
 
-       force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *) addr, 0);
+       force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *) addr);
 }
 
 /* sun4v_mem_corrupt_detect_precise() - Handle precise exception on an ADI
@@ -2697,7 +2692,7 @@ void sun4v_mem_corrupt_detect_precise(struct pt_regs *regs, unsigned long addr,
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGSEGV, SEGV_ADIPERR, (void __user *)addr, 0);
+       force_sig_fault(SIGSEGV, SEGV_ADIPERR, (void __user *)addr);
 }
 
 void do_privop(struct pt_regs *regs)
@@ -2712,8 +2707,7 @@ void do_privop(struct pt_regs *regs)
                regs->tpc &= 0xffffffff;
                regs->tnpc &= 0xffffffff;
        }
-       force_sig_fault(SIGILL, ILL_PRVOPC,
-                       (void __user *)regs->tpc, 0);
+       force_sig_fault(SIGILL, ILL_PRVOPC, (void __user *)regs->tpc);
 out:
        exception_exit(prev_state);
 }