KVM: arm64: Add is_pkvm_initialized() helper
authorQuentin Perret <qperret@google.com>
Tue, 23 Apr 2024 15:05:25 +0000 (16:05 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 1 May 2024 15:48:14 +0000 (16:48 +0100)
Add a helper allowing to check when the pkvm static key is enabled to
ease the introduction of pkvm hooks in other parts of the code.

Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Fuad Tabba <tabba@google.com>
Acked-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240423150538.2103045-18-tabba@google.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/include/asm/virt.h

index 261d6e9df2e1009f8efab95d90dda611fcba1b3e..ebf4a9f943ed92049111bd0bc71811c1f33d0222 100644 (file)
@@ -82,6 +82,12 @@ bool is_kvm_arm_initialised(void);
 
 DECLARE_STATIC_KEY_FALSE(kvm_protected_mode_initialized);
 
+static inline bool is_pkvm_initialized(void)
+{
+       return IS_ENABLED(CONFIG_KVM) &&
+              static_branch_likely(&kvm_protected_mode_initialized);
+}
+
 /* Reports the availability of HYP mode */
 static inline bool is_hyp_mode_available(void)
 {
@@ -89,8 +95,7 @@ static inline bool is_hyp_mode_available(void)
         * If KVM protected mode is initialized, all CPUs must have been booted
         * in EL2. Avoid checking __boot_cpu_mode as CPUs now come up in EL1.
         */
-       if (IS_ENABLED(CONFIG_KVM) &&
-           static_branch_likely(&kvm_protected_mode_initialized))
+       if (is_pkvm_initialized())
                return true;
 
        return (__boot_cpu_mode[0] == BOOT_CPU_MODE_EL2 &&
@@ -104,8 +109,7 @@ static inline bool is_hyp_mode_mismatched(void)
         * If KVM protected mode is initialized, all CPUs must have been booted
         * in EL2. Avoid checking __boot_cpu_mode as CPUs now come up in EL1.
         */
-       if (IS_ENABLED(CONFIG_KVM) &&
-           static_branch_likely(&kvm_protected_mode_initialized))
+       if (is_pkvm_initialized())
                return false;
 
        return __boot_cpu_mode[0] != __boot_cpu_mode[1];