[PATCH v2] KVM: arm64: Only set KVM_MODE_PROTECTED if is_hyp_mode_available()

From: Elliot Berman
Date: Fri Sep 09 2022 - 10:46:25 EST


Do not switch kvm_mode to KVM_MODE_PROTECTED if hypervisor mode is not
available. This prevents "Protected KVM" cpu capability being reported
when Linux is booting in EL1 and would not have KVM enabled.

Signed-off-by: Elliot Berman <quic_eberman@xxxxxxxxxxx>
---
arch/arm64/kvm/arm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index 8fe73ee5fa84..861f4b388879 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -2272,7 +2272,9 @@ static int __init early_kvm_mode_cfg(char *arg)
return -EINVAL;

if (strcmp(arg, "protected") == 0) {
- if (!is_kernel_in_hyp_mode())
+ if (!is_hyp_mode_available())
+ kvm_mode = KVM_MODE_DEFAULT;
+ else if (!is_kernel_in_hyp_mode())
kvm_mode = KVM_MODE_PROTECTED;
else
pr_warn_once("Protected KVM not available with VHE\n");

base-commit: 0982c8d859f8f7022b9fd44d421c7ec721bb41f9
--
2.25.1