Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68a154fc authored by Santosh Shilimkar's avatar Santosh Shilimkar Committed by Russell King
Browse files

ARM: 7681/1: hw_breakpoint: use warn_once to avoid spam from reset_ctrl_regs()



CPU debug features like hardware break, watchpoints can be used only
when the debug mode is enabled and available. Unfortunately on OMAP4
based devices, after a CPU power cycle, the debug feature gets disabled
which leads to a flood of messages coming from reset_ctrl_regs() which
gets called on every CPU_PM_EXIT with CPUidle enabled.

So make use of warn_once() so that system is usable.

Thanks to Will for pointers and Lokesh for the analysis of the issue.

Tested-by: default avatarLokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 120ecfaf
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -966,7 +966,7 @@ static void reset_ctrl_regs(void *unused)
	}

	if (err) {
		pr_warning("CPU %d debug is powered down!\n", cpu);
		pr_warn_once("CPU %d debug is powered down!\n", cpu);
		cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu));
		return;
	}
@@ -987,7 +987,7 @@ clear_vcr:
	isb();

	if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) {
		pr_warning("CPU %d failed to disable vector catch\n", cpu);
		pr_warn_once("CPU %d failed to disable vector catch\n", cpu);
		return;
	}

@@ -1007,7 +1007,7 @@ clear_vcr:
	}

	if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) {
		pr_warning("CPU %d failed to clear debug register pairs\n", cpu);
		pr_warn_once("CPU %d failed to clear debug register pairs\n", cpu);
		return;
	}