OSDN Git Service

KVM: arm64: Move __hyp_set_vectors out of .hyp.text
authorQuentin Perret <qperret@google.com>
Thu, 28 Jan 2021 17:38:50 +0000 (17:38 +0000)
committerWill Deacon <will@kernel.org>
Thu, 28 Jan 2021 20:08:43 +0000 (20:08 +0000)
The .hyp.text section is supposed to be reserved for the nVHE EL2 code.
However, there is currently one occurrence of EL1 executing code located
in .hyp.text when calling __hyp_{re}set_vectors(), which happen to sit
next to the EL2 stub vectors. While not a problem yet, such patterns
will cause issues when removing the host kernel from the TCB, so a
cleaner split would be preferable.

Fix this by delimiting the end of the .hyp.text section in hyp-stub.S.

Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20210128173850.2478161-1-qperret@google.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/hyp-stub.S

index 160f588..8a60f9c 100644 (file)
@@ -85,6 +85,8 @@ SYM_CODE_END(\label)
        invalid_vector  el1_fiq_invalid
        invalid_vector  el1_error_invalid
 
+       .popsection
+
 /*
  * __hyp_set_vectors: Call this after boot to set the initial hypervisor
  * vectors as part of hypervisor installation.  On an SMP system, this should