From 4c45f3c318e2215279eb7f5f6b894d820969cd2b Mon Sep 17 00:00:00 2001 From: Vasiliy Ulyanov Date: Tue, 14 Jul 2015 11:46:51 +0300 Subject: [PATCH] [FIX] Disable BUG() messages suppression Using oops_in_progress to suppress kernel error messages is a dirty hack which only masks potential bugs and greaty complicates debugging. Change-Id: I20a2ee67654a2f039b1b1f7a075ed2599ca2f6d0 Signed-off-by: Vasiliy Ulyanov --- kprobe/arch/arm/swap-asm/swap_kprobes.c | 14 -------------- kprobe/arch/asm-mips/dbi_kprobes.c | 26 -------------------------- kprobe/arch/x86/swap-asm/swap_kprobes.c | 14 -------------- 3 files changed, 54 deletions(-) diff --git a/kprobe/arch/arm/swap-asm/swap_kprobes.c b/kprobe/arch/arm/swap-asm/swap_kprobes.c index d129af3..3948493 100644 --- a/kprobe/arch/arm/swap-asm/swap_kprobes.c +++ b/kprobe/arch/arm/swap-asm/swap_kprobes.c @@ -52,8 +52,6 @@ #include #include -#define SUPRESS_BUG_MESSAGES /**< Debug-off definition */ - #define sign_extend(x, signbit) ((x) | (0 - ((x) & (1 << (signbit))))) #define branch_displacement(insn) sign_extend(((insn) & 0xffffff) << 2, 25) @@ -459,24 +457,12 @@ int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr) int ret; unsigned long flags; -#ifdef SUPRESS_BUG_MESSAGES - int swap_oops_in_progress; - /* oops_in_progress used to avoid BUG() messages - * that slow down kprobe_handler() execution */ - swap_oops_in_progress = oops_in_progress; - oops_in_progress = 1; -#endif - local_irq_save(flags); preempt_disable(); ret = kprobe_handler(regs); swap_preempt_enable_no_resched(); local_irq_restore(flags); -#ifdef SUPRESS_BUG_MESSAGES - oops_in_progress = swap_oops_in_progress; -#endif - return ret; } diff --git a/kprobe/arch/asm-mips/dbi_kprobes.c b/kprobe/arch/asm-mips/dbi_kprobes.c index bfab3cf..bc4abb4 100644 --- a/kprobe/arch/asm-mips/dbi_kprobes.c +++ b/kprobe/arch/asm-mips/dbi_kprobes.c @@ -38,8 +38,6 @@ #include #include -#define SUPRESS_BUG_MESSAGES - unsigned int *arr_traps_original; @@ -268,21 +266,12 @@ int kprobe_handler(struct pt_regs *regs) int ret = 0, pid = 0, retprobe = 0, reenter = 0; kprobe_opcode_t *addr = NULL, *ssaddr = 0; struct kprobe_ctlblk *kcb; -#ifdef SUPRESS_BUG_MESSAGES - int swap_oops_in_progress; -#endif /* We're in an interrupt, but this is clear and BUG()-safe. */ addr = (kprobe_opcode_t *) regs->cp0_epc; DBPRINTF("regs->regs[ 31 ] = 0x%lx\n", regs->regs[31]); -#ifdef SUPRESS_BUG_MESSAGES - /* oops_in_progress used to avoid BUG() messages that - * slow down kprobe_handler() execution */ - swap_oops_in_progress = oops_in_progress; - oops_in_progress = 1; -#endif preempt_disable(); kcb = get_kprobe_ctlblk(); @@ -321,9 +310,6 @@ int kprobe_handler(struct pt_regs *regs) if (!p->ainsn.boostable) kcb->kprobe_status = KPROBE_REENTER; preempt_enable_no_resched(); -#ifdef SUPRESS_BUG_MESSAGES - oops_in_progress = swap_oops_in_progress; -#endif return 1; } } else { @@ -424,21 +410,12 @@ int kprobe_handler(struct pt_regs *regs) if (!p->ainsn.boostable) kcb->kprobe_status = KPROBE_HIT_SS; else if (p->pre_handler != trampoline_probe_handler) { -#ifdef SUPRESS_BUG_MESSAGES - preempt_disable(); -#endif reset_current_kprobe(); -#ifdef SUPRESS_BUG_MESSAGES - preempt_enable_no_resched(); -#endif } } if (ret) { DBPRINTF("p->pre_handler[] 1"); -#ifdef SUPRESS_BUG_MESSAGES - oops_in_progress = swap_oops_in_progress; -#endif /* handler has already set things up, so skip ss setup */ return 1; } @@ -446,9 +423,6 @@ int kprobe_handler(struct pt_regs *regs) no_kprobe: preempt_enable_no_resched(); -#ifdef SUPRESS_BUG_MESSAGES - oops_in_progress = swap_oops_in_progress; -#endif return ret; } diff --git a/kprobe/arch/x86/swap-asm/swap_kprobes.c b/kprobe/arch/x86/swap-asm/swap_kprobes.c index 6fe1090..f29e0ce 100644 --- a/kprobe/arch/x86/swap-asm/swap_kprobes.c +++ b/kprobe/arch/x86/swap-asm/swap_kprobes.c @@ -39,7 +39,6 @@ #include #include #include -#define SUPRESS_BUG_MESSAGES /**< Debug-off definition. */ static int (*swap_fixup_exception)(struct pt_regs *regs); @@ -440,22 +439,9 @@ no_kprobe: static int kprobe_handler(struct pt_regs *regs) { int ret; -#ifdef SUPRESS_BUG_MESSAGES - int swap_oops_in_progress; - /* - * oops_in_progress used to avoid BUG() messages - * that slow down kprobe_handler() execution - */ - swap_oops_in_progress = oops_in_progress; - oops_in_progress = 1; -#endif ret = __kprobe_handler(regs); -#ifdef SUPRESS_BUG_MESSAGES - oops_in_progress = swap_oops_in_progress; -#endif - return ret; } -- 2.7.4