[FIX] Disable BUG() messages suppression 17/43817/3
authorVasiliy Ulyanov <v.ulyanov@samsung.com>
Tue, 14 Jul 2015 08:46:51 +0000 (11:46 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Wed, 15 Jul 2015 12:54:12 +0000 (15:54 +0300)
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 <v.ulyanov@samsung.com>
kprobe/arch/arm/swap-asm/swap_kprobes.c
kprobe/arch/asm-mips/dbi_kprobes.c
kprobe/arch/x86/swap-asm/swap_kprobes.c

index d129af3..3948493 100644 (file)
@@ -52,8 +52,6 @@
 #include <linux/list.h>
 #include <linux/hash.h>
 
-#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;
 }
 
index bfab3cf..bc4abb4 100644 (file)
@@ -38,8 +38,6 @@
 #include <kprobe/dbi_uprobes.h>
 #include <ksyms/ksyms.h>
 
-#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;
 }
 
index 6fe1090..f29e0ce 100644 (file)
@@ -39,7 +39,6 @@
 #include <kprobe/swap_kdebug.h>
 #include <kprobe/swap_slots.h>
 #include <kprobe/swap_kprobes_deps.h>
-#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;
 }