s390: Switch to use confidential_guest_kvm_init()
Use unified confidential_guest_kvm_init(), to avoid exposing specific functions. Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com> --- Changes from rfc v1: - check machine->cgs not NULL before calling confidential_guest_kvm_init();
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "qapi/error.h"
|
||||
#include "exec/ram_addr.h"
|
||||
#include "exec/confidential-guest-support.h"
|
||||
#include "hw/s390x/s390-virtio-hcall.h"
|
||||
#include "hw/s390x/sclp.h"
|
||||
#include "hw/s390x/s390_flic.h"
|
||||
@@ -267,7 +268,9 @@ static void ccw_init(MachineState *machine)
|
||||
s390_init_cpus(machine);
|
||||
|
||||
/* Need CPU model to be determined before we can set up PV */
|
||||
s390_pv_init(machine->cgs, &error_fatal);
|
||||
if (machine->cgs) {
|
||||
confidential_guest_kvm_init(machine->cgs, &error_fatal);
|
||||
}
|
||||
|
||||
s390_flic_init();
|
||||
|
||||
|
||||
@@ -325,6 +325,11 @@ int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!kvm_enabled()) {
|
||||
error_setg(errp, "Protected Virtualization requires KVM");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!s390_has_feat(S390_FEAT_UNPACK)) {
|
||||
error_setg(errp,
|
||||
"CPU model does not support Protected Virtualization");
|
||||
@@ -349,6 +354,9 @@ OBJECT_DEFINE_TYPE_WITH_INTERFACES(S390PVGuest,
|
||||
|
||||
static void s390_pv_guest_class_init(ObjectClass *oc, void *data)
|
||||
{
|
||||
ConfidentialGuestSupportClass *klass = CONFIDENTIAL_GUEST_SUPPORT_CLASS(oc);
|
||||
|
||||
klass->kvm_init = s390_pv_kvm_init;
|
||||
}
|
||||
|
||||
static void s390_pv_guest_init(Object *obj)
|
||||
|
||||
@@ -79,18 +79,4 @@ static inline int kvm_s390_dump_mem_state(uint64_t addr, size_t len,
|
||||
static inline int kvm_s390_dump_completion_data(void *buff) { return 0; }
|
||||
#endif /* CONFIG_KVM */
|
||||
|
||||
int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp);
|
||||
static inline int s390_pv_init(ConfidentialGuestSupport *cgs, Error **errp)
|
||||
{
|
||||
if (!cgs) {
|
||||
return 0;
|
||||
}
|
||||
if (kvm_enabled()) {
|
||||
return s390_pv_kvm_init(cgs, errp);
|
||||
}
|
||||
|
||||
error_setg(errp, "Protected Virtualization requires KVM");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif /* HW_S390_PV_H */
|
||||
|
||||
Reference in New Issue
Block a user