aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/kernel/process.c')
-rw-r--r--arch/sh/kernel/process.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
index 486c06e18033..cc8f306fd682 100644
--- a/arch/sh/kernel/process.c
+++ b/arch/sh/kernel/process.c
@@ -493,9 +493,27 @@ asmlinkage void break_point_trap(void)
493 force_sig(SIGTRAP, current); 493 force_sig(SIGTRAP, current);
494} 494}
495 495
496asmlinkage void break_point_trap_software(unsigned long r4, unsigned long r5, 496/*
497 unsigned long r6, unsigned long r7, 497 * Generic trap handler.
498 struct pt_regs __regs) 498 */
499asmlinkage void debug_trap_handler(unsigned long r4, unsigned long r5,
500 unsigned long r6, unsigned long r7,
501 struct pt_regs __regs)
502{
503 struct pt_regs *regs = RELOC_HIDE(&__regs, 0);
504
505 /* Rewind */
506 regs->pc -= 2;
507
508 force_sig(SIGTRAP, current);
509}
510
511/*
512 * Special handler for BUG() traps.
513 */
514asmlinkage void bug_trap_handler(unsigned long r4, unsigned long r5,
515 unsigned long r6, unsigned long r7,
516 struct pt_regs __regs)
499{ 517{
500 struct pt_regs *regs = RELOC_HIDE(&__regs, 0); 518 struct pt_regs *regs = RELOC_HIDE(&__regs, 0);
501 519