Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> --- target/i386/kvm/kvm.c | 2 ++ target/i386/kvm/sw-protected-vm.c | 10 ++++++++++ target/i386/kvm/sw-protected-vm.h | 2 ++ 3 files changed, 14 insertions(+) diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index fb1be16471b4..e126bf4e7ddd 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -2587,6 +2587,8 @@ static int kvm_confidential_guest_init(MachineState *ms, Error **errp) { if (object_dynamic_cast(OBJECT(ms->cgs), TYPE_SEV_GUEST)) { return sev_kvm_init(ms->cgs, errp); + } else if (object_dynamic_cast(OBJECT(ms->cgs), TYPE_SW_PROTECTED_VM)) { + return sw_protected_vm_kvm_init(ms, errp); } return 0; diff --git a/target/i386/kvm/sw-protected-vm.c b/target/i386/kvm/sw-protected-vm.c index 62a1d3d5d3fe..3cfcc89202a6 100644 --- a/target/i386/kvm/sw-protected-vm.c +++ b/target/i386/kvm/sw-protected-vm.c @@ -10,10 +10,20 @@ */ #include "qemu/osdep.h" +#include "qapi/error.h" #include "qom/object_interfaces.h" +#include "hw/i386/x86.h" #include "sw-protected-vm.h" +int sw_protected_vm_kvm_init(MachineState *ms, Error **errp) +{ + SwProtectedVm *spvm = SW_PROTECTED_VM(OBJECT(ms->cgs)); + + spvm->parent_obj.ready = true; + return 0; +} + /* x86-sw-protected-vm */ OBJECT_DEFINE_TYPE_WITH_INTERFACES(SwProtectedVm, sw_protected_vm, diff --git a/target/i386/kvm/sw-protected-vm.h b/target/i386/kvm/sw-protected-vm.h index db192a81c75e..15f63bfc7c60 100644 --- a/target/i386/kvm/sw-protected-vm.h +++ b/target/i386/kvm/sw-protected-vm.h @@ -14,4 +14,6 @@ typedef struct SwProtectedVm { ConfidentialGuestSupport parent_obj; } SwProtectedVm; +int sw_protected_vm_kvm_init(MachineState *ms, Error **errp); + #endif /* QEMU_I386_SW_PROTECTED_VM_H */ -- 2.34.1