csky: Fixup no panic in kernel for some traps
authorGuo Ren <ren_guo@c-sky.com>
Fri, 10 May 2019 09:07:01 +0000 (17:07 +0800)
committerGuo Ren <ren_guo@c-sky.com>
Fri, 19 Jul 2019 06:21:36 +0000 (14:21 +0800)
These traps couldn't be hanppen in kernel and we must panic there not
send a signal to userspace.

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
Cc: Arnd Bergmann <arnd@arndb.de>
arch/csky/kernel/traps.c

index f487a9b996ae1e4e23b33d34db193dcbf2205279..6129f30faf6e1c0d65a5afb4213a55a45ef98539 100644 (file)
@@ -120,6 +120,7 @@ asmlinkage void trap_c(struct pt_regs *regs)
 
        switch (vector) {
        case VEC_ZERODIV:
+               die_if_kernel("Kernel mode ZERO DIV", regs, vector);
                sig = SIGFPE;
                break;
        /* ptrace */
@@ -128,6 +129,7 @@ asmlinkage void trap_c(struct pt_regs *regs)
                sig = SIGTRAP;
                break;
        case VEC_ILLEGAL:
+               die_if_kernel("Kernel mode ILLEGAL", regs, vector);
 #ifndef CONFIG_CPU_NO_USER_BKPT
                if (*(uint16_t *)instruction_pointer(regs) != USR_BKPT)
 #endif
@@ -139,6 +141,7 @@ asmlinkage void trap_c(struct pt_regs *regs)
        case VEC_TRAP1:
        /* jtagserver breakpoint */
        case VEC_BREAKPOINT:
+               die_if_kernel("Kernel mode BKPT", regs, vector);
                info.si_code = TRAP_BRKPT;
                sig = SIGTRAP;
                break;
@@ -150,8 +153,10 @@ asmlinkage void trap_c(struct pt_regs *regs)
 #endif
 #ifdef CONFIG_CPU_HAS_FPU
        case VEC_FPE:
+               die_if_kernel("Kernel mode FPE", regs, vector);
                return fpu_fpe(regs);
        case VEC_PRIV:
+               die_if_kernel("Kernel mode PRIV", regs, vector);
                if (fpu_libc_helper(regs))
                        return;
 #endif