KVM: arm64: Re-jig logic when patching hardened hyp vectors
authorWill Deacon <will@kernel.org>
Fri, 13 Nov 2020 11:38:43 +0000 (11:38 +0000)
committerMarc Zyngier <maz@kernel.org>
Mon, 16 Nov 2020 10:40:18 +0000 (10:40 +0000)
The hardened hyp vectors are not used on systems running with VHE or CPUs
without the ARM64_HARDEN_EL2_VECTORS capability.

Re-jig the checking logic slightly in kvm_patch_vector_branch() so that
it's a bit clearer what we're looking for. This is purely cosmetic.

Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20201113113847.21619-7-will@kernel.org
arch/arm64/kvm/va_layout.c

index d1195c2..760db2c 100644 (file)
@@ -139,8 +139,8 @@ void kvm_patch_vector_branch(struct alt_instr *alt,
 
        BUG_ON(nr_inst != 5);
 
-       if (has_vhe() || !cpus_have_const_cap(ARM64_HARDEN_EL2_VECTORS)) {
-               WARN_ON_ONCE(cpus_have_const_cap(ARM64_HARDEN_EL2_VECTORS));
+       if (!cpus_have_const_cap(ARM64_HARDEN_EL2_VECTORS) ||
+           WARN_ON_ONCE(has_vhe())) {
                return;
        }