Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3158d289 authored by Guo Ren's avatar Guo Ren
Browse files

csky: Fixup no panic in kernel for some traps



These traps couldn't be hanppen in kernel and we must panic there not
send a signal to userspace.

Signed-off-by: default avatarGuo Ren <ren_guo@c-sky.com>
Cc: Arnd Bergmann <arnd@arndb.de>
parent 1994cc49
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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