[RFC PATCH 34/34] KVM: gunyah: enable KVM for Gunyah
Karim Manaouil
karim.manaouil at linaro.org
Thu Apr 24 07:13:41 PDT 2025
Enable KVM to act as the interface to create and manage Qualcomm's
Gunyah-based virtual machines [1].
[1] https://www.qualcomm.com/developer/blog/2024/08/learn-about-gunyah--qualcomm-s-open-source--lightweight-hypervis
Signed-off-by: Karim Manaouil <karim.manaouil at linaro.org>
---
arch/arm64/kvm/gunyah.c | 12 ++++++++++++
drivers/virt/gunyah/gunyah.c | 3 +++
include/linux/gunyah.h | 1 +
3 files changed, 16 insertions(+)
diff --git a/arch/arm64/kvm/gunyah.c b/arch/arm64/kvm/gunyah.c
index 23b9128bf5b1..91f0260ef3f5 100644
--- a/arch/arm64/kvm/gunyah.c
+++ b/arch/arm64/kvm/gunyah.c
@@ -2071,3 +2071,15 @@ void kvm_arch_free_vm(struct kvm *kvm)
kfree(ghvm);
}
+
+int kvm_gunyah_init(void)
+{
+ int err;
+
+ err = kvm_init(sizeof(struct kvm_vcpu), 0, THIS_MODULE);
+ if (err)
+ return err;
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(kvm_gunyah_init);
diff --git a/drivers/virt/gunyah/gunyah.c b/drivers/virt/gunyah/gunyah.c
index 3e795e3ba881..629c812fbac0 100644
--- a/drivers/virt/gunyah/gunyah.c
+++ b/drivers/virt/gunyah/gunyah.c
@@ -28,6 +28,9 @@ static int gunyah_probe(struct platform_device *pdev)
return -ENODEV;
}
+ if (!kvm_gunyah_init())
+ pr_info("KVM for Gunyah is available!\n");
+
return devm_of_platform_populate(&pdev->dev);
}
diff --git a/include/linux/gunyah.h b/include/linux/gunyah.h
index 26fdfa3174da..7d43449c4547 100644
--- a/include/linux/gunyah.h
+++ b/include/linux/gunyah.h
@@ -421,4 +421,5 @@ enum gunyah_error
gunyah_hypercall_vcpu_run(u64 capid, unsigned long *resume_data,
struct gunyah_hypercall_vcpu_run_resp *resp);
+int kvm_gunyah_init(void);
#endif
--
2.39.5
More information about the linux-arm-kernel
mailing list