Ivan T. Ivanov 03dcd0
From: James Morse <james.morse@arm.com>
Ivan T. Ivanov 03dcd0
Date: Thu, 24 Jan 2019 16:32:56 +0000
Ivan T. Ivanov 03dcd0
Subject: arm64: hyp-stub: Forbid kprobing of the hyp-stub
Ivan T. Ivanov 03dcd0
Git-commit: 8fac5cbdfe0f01254d9d265c6aa1a95f94f58595
Ivan T. Ivanov 03dcd0
Patch-mainline: v5.0-rc5
Ivan T. Ivanov 03dcd0
References: git-fixes
Ivan T. Ivanov 03dcd0
Ivan T. Ivanov 03dcd0
The hyp-stub is loaded by the kernel's early startup code at EL2
Ivan T. Ivanov 03dcd0
during boot, before KVM takes ownership later. The hyp-stub's
Ivan T. Ivanov 03dcd0
text is part of the regular kernel text, meaning it can be kprobed.
Ivan T. Ivanov 03dcd0
Ivan T. Ivanov 03dcd0
A breakpoint in the hyp-stub causes the CPU to spin in el2_sync_invalid.
Ivan T. Ivanov 03dcd0
Ivan T. Ivanov 03dcd0
Add it to the __hyp_text.
Ivan T. Ivanov 03dcd0
Ivan T. Ivanov 03dcd0
Signed-off-by: James Morse <james.morse@arm.com>
Ivan T. Ivanov 03dcd0
Cc: stable@vger.kernel.org
Ivan T. Ivanov 03dcd0
Signed-off-by: Will Deacon <will.deacon@arm.com>
Ivan T. Ivanov 03dcd0
Acked-by: Ivan T. Ivanov <iivanov@suse.de>
Ivan T. Ivanov 03dcd0
---
Ivan T. Ivanov 03dcd0
 arch/arm64/kernel/hyp-stub.S |    2 ++
Ivan T. Ivanov 03dcd0
 1 file changed, 2 insertions(+)
Ivan T. Ivanov 03dcd0
Ivan T. Ivanov 03dcd0
--- a/arch/arm64/kernel/hyp-stub.S
Ivan T. Ivanov 03dcd0
+++ b/arch/arm64/kernel/hyp-stub.S
Ivan T. Ivanov 03dcd0
@@ -28,6 +28,8 @@
Ivan T. Ivanov 03dcd0
 #include <asm/virt.h>
Ivan T. Ivanov 03dcd0
 
Ivan T. Ivanov 03dcd0
 	.text
Ivan T. Ivanov 03dcd0
+	.pushsection	.hyp.text, "ax"
Ivan T. Ivanov 03dcd0
+
Ivan T. Ivanov 03dcd0
 	.align 11
Ivan T. Ivanov 03dcd0
 
Ivan T. Ivanov 03dcd0
 ENTRY(__hyp_stub_vectors)