diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/kgdb.c | 9 | ||||
-rw-r--r-- | arch/x86/kernel/kgdb.c | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/mips/kernel/kgdb.c b/arch/mips/kernel/kgdb.c index f4546e97c60..23817a6e32b 100644 --- a/arch/mips/kernel/kgdb.c +++ b/arch/mips/kernel/kgdb.c | |||
@@ -283,6 +283,15 @@ static int kgdb_mips_notify(struct notifier_block *self, unsigned long cmd, | |||
283 | struct pt_regs *regs = args->regs; | 283 | struct pt_regs *regs = args->regs; |
284 | int trap = (regs->cp0_cause & 0x7c) >> 2; | 284 | int trap = (regs->cp0_cause & 0x7c) >> 2; |
285 | 285 | ||
286 | #ifdef CONFIG_KPROBES | ||
287 | /* | ||
288 | * Return immediately if the kprobes fault notifier has set | ||
289 | * DIE_PAGE_FAULT. | ||
290 | */ | ||
291 | if (cmd == DIE_PAGE_FAULT) | ||
292 | return NOTIFY_DONE; | ||
293 | #endif /* CONFIG_KPROBES */ | ||
294 | |||
286 | /* Userspace events, ignore. */ | 295 | /* Userspace events, ignore. */ |
287 | if (user_mode(regs)) | 296 | if (user_mode(regs)) |
288 | return NOTIFY_DONE; | 297 | return NOTIFY_DONE; |
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c index 3f61904365c..836f8322960 100644 --- a/arch/x86/kernel/kgdb.c +++ b/arch/x86/kernel/kgdb.c | |||
@@ -746,7 +746,9 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long ip) | |||
746 | int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt) | 746 | int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt) |
747 | { | 747 | { |
748 | int err; | 748 | int err; |
749 | #ifdef CONFIG_DEBUG_RODATA | ||
749 | char opc[BREAK_INSTR_SIZE]; | 750 | char opc[BREAK_INSTR_SIZE]; |
751 | #endif /* CONFIG_DEBUG_RODATA */ | ||
750 | 752 | ||
751 | bpt->type = BP_BREAKPOINT; | 753 | bpt->type = BP_BREAKPOINT; |
752 | err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr, | 754 | err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr, |