Commit d81a91af authored by Quentin Perret's avatar Quentin Perret Committed by Marc Zyngier
Browse files

KVM: arm64: Add is_pkvm_initialized() helper



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: default avatarQuentin Perret <qperret@google.com>
Signed-off-by: default avatarFuad Tabba <tabba@google.com>
Acked-by: default avatarOliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240423150538.2103045-18-tabba@google.com


Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 948e1a53
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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];