Ivan T. Ivanov 67d23f
From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Ivan T. Ivanov 67d23f
Date: Mon, 8 Apr 2019 18:17:18 +0100
Ivan T. Ivanov 67d23f
Subject: arm64: Clear OSDLR_EL1 on CPU boot
Ivan T. Ivanov 67d23f
Git-commit: 6fda41bf12615ee7c3ddac88155099b1a8cf8d00
Ivan T. Ivanov 67d23f
Patch-mainline: v5.2-rc1
Ivan T. Ivanov 67d23f
References: git-fixes
Ivan T. Ivanov 67d23f
Ivan T. Ivanov 67d23f
Some firmwares may reboot CPUs with OS Double Lock set. Make sure that
Ivan T. Ivanov 67d23f
it is unlocked, in order to use debug exceptions.
Ivan T. Ivanov 67d23f
Ivan T. Ivanov 67d23f
Cc: <stable@vger.kernel.org>
Ivan T. Ivanov 67d23f
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Ivan T. Ivanov 67d23f
Signed-off-by: Will Deacon <will.deacon@arm.com>
Ivan T. Ivanov 67d23f
Acked-by: Ivan T. Ivanov <iivanov@suse.de>
Ivan T. Ivanov 67d23f
---
Ivan T. Ivanov 67d23f
 arch/arm64/kernel/debug-monitors.c |    1 +
Ivan T. Ivanov 67d23f
 1 file changed, 1 insertion(+)
Ivan T. Ivanov 67d23f
Ivan T. Ivanov 67d23f
--- a/arch/arm64/kernel/debug-monitors.c
Ivan T. Ivanov 67d23f
+++ b/arch/arm64/kernel/debug-monitors.c
Ivan T. Ivanov 67d23f
@@ -134,6 +134,7 @@ NOKPROBE_SYMBOL(disable_debug_monitors);
Ivan T. Ivanov 67d23f
  */
Ivan T. Ivanov 67d23f
 static int clear_os_lock(unsigned int cpu)
Ivan T. Ivanov 67d23f
 {
Ivan T. Ivanov 67d23f
+	write_sysreg(0, osdlr_el1);
Ivan T. Ivanov 67d23f
 	write_sysreg(0, oslar_el1);
Ivan T. Ivanov 67d23f
 	isb();
Ivan T. Ivanov 67d23f
 	return 0;