traps.c (eacbfce19d8b6dbd7958cbe01d65a21324cc2fad) traps.c (8858ac8e9e9b1894f7bb218bc0035532371b8d7e)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/arch/parisc/traps.c
4 *
5 * Copyright (C) 1991, 1992 Linus Torvalds
6 * Copyright (C) 1999, 2000 Philipp Rumpf <prumpf@tux.org>
7 */
8

--- 29 unchanged lines hidden (view full) ---

38#include <linux/atomic.h>
39#include <asm/smp.h>
40#include <asm/pdc.h>
41#include <asm/pdc_chassis.h>
42#include <asm/unwind.h>
43#include <asm/tlbflush.h>
44#include <asm/cacheflush.h>
45#include <linux/kgdb.h>
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/arch/parisc/traps.c
4 *
5 * Copyright (C) 1991, 1992 Linus Torvalds
6 * Copyright (C) 1999, 2000 Philipp Rumpf <prumpf@tux.org>
7 */
8

--- 29 unchanged lines hidden (view full) ---

38#include <linux/atomic.h>
39#include <asm/smp.h>
40#include <asm/pdc.h>
41#include <asm/pdc_chassis.h>
42#include <asm/unwind.h>
43#include <asm/tlbflush.h>
44#include <asm/cacheflush.h>
45#include <linux/kgdb.h>
46#include <linux/kprobes.h>
46
47#include "../math-emu/math-emu.h" /* for handle_fpe() */
48
49static void parisc_show_stack(struct task_struct *task,
50 struct pt_regs *regs);
51
52static int printbinary(char *buf, unsigned long x, int nbits)
53{

--- 235 unchanged lines hidden (view full) ---

289 regs->iaoq[0] += 4;
290 regs->iaoq[1] += 4;
291 return; /* return to next instruction when WARN_ON(). */
292 }
293 die_if_kernel("Unknown kernel breakpoint", regs,
294 (tt == BUG_TRAP_TYPE_NONE) ? 9 : 0);
295 }
296
47
48#include "../math-emu/math-emu.h" /* for handle_fpe() */
49
50static void parisc_show_stack(struct task_struct *task,
51 struct pt_regs *regs);
52
53static int printbinary(char *buf, unsigned long x, int nbits)
54{

--- 235 unchanged lines hidden (view full) ---

290 regs->iaoq[0] += 4;
291 regs->iaoq[1] += 4;
292 return; /* return to next instruction when WARN_ON(). */
293 }
294 die_if_kernel("Unknown kernel breakpoint", regs,
295 (tt == BUG_TRAP_TYPE_NONE) ? 9 : 0);
296 }
297
298#ifdef CONFIG_KPROBES
299 if (unlikely(iir == PARISC_KPROBES_BREAK_INSN)) {
300 parisc_kprobe_break_handler(regs);
301 return;
302 }
303
304#endif
305
297#ifdef CONFIG_KGDB
298 if (unlikely(iir == PARISC_KGDB_COMPILED_BREAK_INSN ||
299 iir == PARISC_KGDB_BREAK_INSN)) {
300 kgdb_handle_exception(9, SIGTRAP, 0, regs);
301 return;
302 }
303#endif
304

--- 218 unchanged lines hidden (view full) ---

523 /* Power failure interrupt */
524 printk(KERN_CRIT "Power failure interrupt !\n");
525 return;
526
527 case 3:
528 /* Recovery counter trap */
529 regs->gr[0] &= ~PSW_R;
530
306#ifdef CONFIG_KGDB
307 if (unlikely(iir == PARISC_KGDB_COMPILED_BREAK_INSN ||
308 iir == PARISC_KGDB_BREAK_INSN)) {
309 kgdb_handle_exception(9, SIGTRAP, 0, regs);
310 return;
311 }
312#endif
313

--- 218 unchanged lines hidden (view full) ---

532 /* Power failure interrupt */
533 printk(KERN_CRIT "Power failure interrupt !\n");
534 return;
535
536 case 3:
537 /* Recovery counter trap */
538 regs->gr[0] &= ~PSW_R;
539
540#ifdef CONFIG_KPROBES
541 if (parisc_kprobe_ss_handler(regs))
542 return;
543#endif
544
531#ifdef CONFIG_KGDB
532 if (kgdb_single_step) {
533 kgdb_handle_exception(0, SIGTRAP, 0, regs);
534 return;
535 }
536#endif
537
538 if (user_space(regs))

--- 317 unchanged lines hidden ---
545#ifdef CONFIG_KGDB
546 if (kgdb_single_step) {
547 kgdb_handle_exception(0, SIGTRAP, 0, regs);
548 return;
549 }
550#endif
551
552 if (user_space(regs))

--- 317 unchanged lines hidden ---