Re: [PATCH v2 3/4] arm64: hyp-stub: Forbid kprobing of the hyp-stub
From: Christoffer Dall <hidden>
Date: 2019-01-31 08:05:31
Also in:
kvmarm
On Thu, Jan 24, 2019 at 04:32:56PM +0000, James Morse wrote:
The hyp-stub is loaded by the kernel's early startup code at EL2 during boot, before KVM takes ownership later. The hyp-stub's text is part of the regular kernel text, meaning it can be kprobed. A breakpoint in the hyp-stub causes the CPU to spin in el2_sync_invalid. Add it to the __hyp_text. Signed-off-by: James Morse <james.morse@arm.com> Cc: stable@vger.kernel.org --- This has been a problem since kprobes was merged, it should probably have been covered in 888b3c8720e0. I'm not sure __hyp_text is the right place. Its not idmaped, and as it contains a set of vectors, adding it to the host/hyp idmap sections could grow them beyond a page... but it does run with the MMU off, so does need to be cleaned to PoC when anything wacky, like hibernate happens. With this patch, hibernate should clean the __hyp_text to PoC too.
How did this code get cleaned before?
Is there a problem you can identify with putting it in __hyp_text?
Seems to me we should just stick it there if it has no negative
side-effects and otherwise we have to make up a separate section with a
specialized meaning.
Thanks,
Christoffer
quoted hunk ↗ jump to hunk
--- arch/arm64/kernel/hyp-stub.S | 2 ++ 1 file changed, 2 insertions(+)diff --git a/arch/arm64/kernel/hyp-stub.S b/arch/arm64/kernel/hyp-stub.S index e1261fbaa374..17f325ba831e 100644 --- a/arch/arm64/kernel/hyp-stub.S +++ b/arch/arm64/kernel/hyp-stub.S@@ -28,6 +28,8 @@ #include <asm/virt.h> .text + .pushsection .hyp.text, "ax" + .align 11 ENTRY(__hyp_stub_vectors)-- 2.20.1
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel