mirror of https://github.com/xemu-project/xemu.git
ppc/pef: switch to use confidential_guest_kvm_init/reset()
Use the unified interface to call confidential guest related kvm_init() and kvm_reset(), to avoid exposing pef specific functions. As a bonus, pef.h goes away since there is no direct call from sPAPR board code to PEF code anymore. Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
637c95b37b
commit
00a238b1a8
|
@ -15,7 +15,6 @@
|
||||||
#include "sysemu/kvm.h"
|
#include "sysemu/kvm.h"
|
||||||
#include "migration/blocker.h"
|
#include "migration/blocker.h"
|
||||||
#include "exec/confidential-guest-support.h"
|
#include "exec/confidential-guest-support.h"
|
||||||
#include "hw/ppc/pef.h"
|
|
||||||
|
|
||||||
#define TYPE_PEF_GUEST "pef-guest"
|
#define TYPE_PEF_GUEST "pef-guest"
|
||||||
OBJECT_DECLARE_SIMPLE_TYPE(PefGuest, PEF_GUEST)
|
OBJECT_DECLARE_SIMPLE_TYPE(PefGuest, PEF_GUEST)
|
||||||
|
@ -93,7 +92,7 @@ static int kvmppc_svm_off(Error **errp)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int pef_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
|
static int pef_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
|
||||||
{
|
{
|
||||||
if (!object_dynamic_cast(OBJECT(cgs), TYPE_PEF_GUEST)) {
|
if (!object_dynamic_cast(OBJECT(cgs), TYPE_PEF_GUEST)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -107,7 +106,7 @@ int pef_kvm_init(ConfidentialGuestSupport *cgs, Error **errp)
|
||||||
return kvmppc_svm_init(cgs, errp);
|
return kvmppc_svm_init(cgs, errp);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pef_kvm_reset(ConfidentialGuestSupport *cgs, Error **errp)
|
static int pef_kvm_reset(ConfidentialGuestSupport *cgs, Error **errp)
|
||||||
{
|
{
|
||||||
if (!object_dynamic_cast(OBJECT(cgs), TYPE_PEF_GUEST)) {
|
if (!object_dynamic_cast(OBJECT(cgs), TYPE_PEF_GUEST)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -131,6 +130,10 @@ OBJECT_DEFINE_TYPE_WITH_INTERFACES(PefGuest,
|
||||||
|
|
||||||
static void pef_guest_class_init(ObjectClass *oc, void *data)
|
static void pef_guest_class_init(ObjectClass *oc, void *data)
|
||||||
{
|
{
|
||||||
|
ConfidentialGuestSupportClass *klass = CONFIDENTIAL_GUEST_SUPPORT_CLASS(oc);
|
||||||
|
|
||||||
|
klass->kvm_init = pef_kvm_init;
|
||||||
|
klass->kvm_reset = pef_kvm_reset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pef_guest_init(Object *obj)
|
static void pef_guest_init(Object *obj)
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
#include "hw/virtio/vhost-scsi-common.h"
|
#include "hw/virtio/vhost-scsi-common.h"
|
||||||
|
|
||||||
#include "exec/ram_addr.h"
|
#include "exec/ram_addr.h"
|
||||||
|
#include "exec/confidential-guest-support.h"
|
||||||
#include "hw/usb.h"
|
#include "hw/usb.h"
|
||||||
#include "qemu/config-file.h"
|
#include "qemu/config-file.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
|
@ -87,7 +88,6 @@
|
||||||
#include "hw/ppc/spapr_tpm_proxy.h"
|
#include "hw/ppc/spapr_tpm_proxy.h"
|
||||||
#include "hw/ppc/spapr_nvdimm.h"
|
#include "hw/ppc/spapr_nvdimm.h"
|
||||||
#include "hw/ppc/spapr_numa.h"
|
#include "hw/ppc/spapr_numa.h"
|
||||||
#include "hw/ppc/pef.h"
|
|
||||||
|
|
||||||
#include "monitor/monitor.h"
|
#include "monitor/monitor.h"
|
||||||
|
|
||||||
|
@ -1715,7 +1715,9 @@ static void spapr_machine_reset(MachineState *machine, ShutdownCause reason)
|
||||||
qemu_guest_getrandom_nofail(spapr->fdt_rng_seed, 32);
|
qemu_guest_getrandom_nofail(spapr->fdt_rng_seed, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
pef_kvm_reset(machine->cgs, &error_fatal);
|
if (machine->cgs) {
|
||||||
|
confidential_guest_kvm_reset(machine->cgs, &error_fatal);
|
||||||
|
}
|
||||||
spapr_caps_apply(spapr);
|
spapr_caps_apply(spapr);
|
||||||
spapr_nested_reset(spapr);
|
spapr_nested_reset(spapr);
|
||||||
|
|
||||||
|
@ -2841,7 +2843,9 @@ static void spapr_machine_init(MachineState *machine)
|
||||||
/*
|
/*
|
||||||
* if Secure VM (PEF) support is configured, then initialize it
|
* if Secure VM (PEF) support is configured, then initialize it
|
||||||
*/
|
*/
|
||||||
pef_kvm_init(machine->cgs, &error_fatal);
|
if (machine->cgs) {
|
||||||
|
confidential_guest_kvm_init(machine->cgs, &error_fatal);
|
||||||
|
}
|
||||||
|
|
||||||
msi_nonbroken = true;
|
msi_nonbroken = true;
|
||||||
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
/*
|
|
||||||
* PEF (Protected Execution Facility) for POWER support
|
|
||||||
*
|
|
||||||
* Copyright Red Hat.
|
|
||||||
*
|
|
||||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
||||||
* See the COPYING file in the top-level directory.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef HW_PPC_PEF_H
|
|
||||||
#define HW_PPC_PEF_H
|
|
||||||
|
|
||||||
int pef_kvm_init(ConfidentialGuestSupport *cgs, Error **errp);
|
|
||||||
int pef_kvm_reset(ConfidentialGuestSupport *cgs, Error **errp);
|
|
||||||
|
|
||||||
#endif /* HW_PPC_PEF_H */
|
|
Loading…
Reference in New Issue