ARM: hw_breakpoint: kill WARN_ONCE usage
authorWill Deacon <will.deacon@arm.com>
Thu, 25 Oct 2012 16:18:23 +0000 (17:18 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 9 Nov 2012 11:47:06 +0000 (11:47 +0000)
WARN_ONCE is a bit OTT for some of the simple failure cases encountered
in hw_breakpoint, so use either pr_warning or pr_warn_once instead.

Reported-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/hw_breakpoint.c

index 05febbaecb44d18410b0bc08246a68d46fed217c..5ff2e77782b185cdcaf18a1636e00ce25b0cf733 100644 (file)
@@ -261,10 +261,11 @@ static int enable_monitor_mode(void)
 
        /* Check that the write made it through. */
        ARM_DBG_READ(c0, c1, 0, dscr);
-       if (WARN_ONCE(!(dscr & ARM_DSCR_MDBGEN),
-               "Failed to enable monitor mode on CPU %d.\n",
-               smp_processor_id()))
+       if (!(dscr & ARM_DSCR_MDBGEN)) {
+               pr_warn_once("Failed to enable monitor mode on CPU %d.\n",
+                               smp_processor_id());
                return -EPERM;
+       }
 
 out:
        return 0;
@@ -357,8 +358,10 @@ int arch_install_hw_breakpoint(struct perf_event *bp)
                }
        }
 
-       if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot\n"))
+       if (i == max_slots) {
+               pr_warning("Can't find any breakpoint slot\n");
                return -EBUSY;
+       }
 
        /* Override the breakpoint data with the step data. */
        if (info->step_ctrl.enabled) {
@@ -407,8 +410,10 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp)
                }
        }
 
-       if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot\n"))
+       if (i == max_slots) {
+               pr_warning("Can't find any breakpoint slot\n");
                return;
+       }
 
        /* Ensure that we disable the mismatch breakpoint. */
        if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE &&