Pārlūkot izejas kodu

ARM: 6864/1: hw_breakpoint: clear DBGVCR out of reset

The DBGVCR, used for configuring vector catch debug events, is UNKNOWN
out of reset on ARMv7. When enabling monitor mode, this must be zeroed
to avoid UNPREDICTABLE behaviour.

This patch adds the zeroing code to the debug reset path.

Cc: stable <stable@kernel.org>
Reported-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Will Deacon 14 gadi atpakaļ
vecāks
revīzija
e89c0d7090
1 mainītis faili ar 7 papildinājumiem un 0 dzēšanām
  1. 7 0
      arch/arm/kernel/hw_breakpoint.c

+ 7 - 0
arch/arm/kernel/hw_breakpoint.c

@@ -868,6 +868,13 @@ static void reset_ctrl_regs(void *info)
 		 */
 		 */
 		asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0));
 		asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0));
 		isb();
 		isb();
+
+		/*
+		 * Clear any configured vector-catch events before
+		 * enabling monitor mode.
+		 */
+		asm volatile("mcr p14, 0, %0, c0, c7, 0" : : "r" (0));
+		isb();
 	}
 	}
 
 
 	if (enable_monitor_mode())
 	if (enable_monitor_mode())