diff options
Diffstat (limited to 'arch/s390/kernel/traps.c')
-rw-r--r-- | arch/s390/kernel/traps.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index a6540940190b..49dec830373a 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -30,7 +30,7 @@ | |||
30 | #include <linux/kallsyms.h> | 30 | #include <linux/kallsyms.h> |
31 | #include <linux/reboot.h> | 31 | #include <linux/reboot.h> |
32 | #include <linux/kprobes.h> | 32 | #include <linux/kprobes.h> |
33 | 33 | #include <linux/bug.h> | |
34 | #include <asm/system.h> | 34 | #include <asm/system.h> |
35 | #include <asm/uaccess.h> | 35 | #include <asm/uaccess.h> |
36 | #include <asm/io.h> | 36 | #include <asm/io.h> |
@@ -297,6 +297,11 @@ report_user_fault(long interruption_code, struct pt_regs *regs) | |||
297 | #endif | 297 | #endif |
298 | } | 298 | } |
299 | 299 | ||
300 | int is_valid_bugaddr(unsigned long addr) | ||
301 | { | ||
302 | return 1; | ||
303 | } | ||
304 | |||
300 | static void __kprobes inline do_trap(long interruption_code, int signr, | 305 | static void __kprobes inline do_trap(long interruption_code, int signr, |
301 | char *str, struct pt_regs *regs, | 306 | char *str, struct pt_regs *regs, |
302 | siginfo_t *info) | 307 | siginfo_t *info) |
@@ -323,8 +328,14 @@ static void __kprobes inline do_trap(long interruption_code, int signr, | |||
323 | fixup = search_exception_tables(regs->psw.addr & PSW_ADDR_INSN); | 328 | fixup = search_exception_tables(regs->psw.addr & PSW_ADDR_INSN); |
324 | if (fixup) | 329 | if (fixup) |
325 | regs->psw.addr = fixup->fixup | PSW_ADDR_AMODE; | 330 | regs->psw.addr = fixup->fixup | PSW_ADDR_AMODE; |
326 | else | 331 | else { |
327 | die(str, regs, interruption_code); | 332 | enum bug_trap_type btt; |
333 | |||
334 | btt = report_bug(regs->psw.addr & PSW_ADDR_INSN); | ||
335 | if (btt == BUG_TRAP_TYPE_WARN) | ||
336 | return; | ||
337 | die(str, regs, interruption_code); | ||
338 | } | ||
328 | } | 339 | } |
329 | } | 340 | } |
330 | 341 | ||