Skip to content

Commit

Permalink
ppc/pef: switch to use confidential_guest_kvm_init/reset()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
calmisi authored and bonzini committed Apr 23, 2024
1 parent 637c95b commit 00a238b
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 23 deletions.
9 changes: 6 additions & 3 deletions hw/ppc/pef.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include "sysemu/kvm.h"
#include "migration/blocker.h"
#include "exec/confidential-guest-support.h"
#include "hw/ppc/pef.h"

#define TYPE_PEF_GUEST "pef-guest"
OBJECT_DECLARE_SIMPLE_TYPE(PefGuest, PEF_GUEST)
Expand Down Expand Up @@ -93,7 +92,7 @@ static int kvmppc_svm_off(Error **errp)
#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)) {
return 0;
Expand All @@ -107,7 +106,7 @@ int pef_kvm_init(ConfidentialGuestSupport *cgs, Error **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)) {
return 0;
Expand All @@ -131,6 +130,10 @@ OBJECT_DEFINE_TYPE_WITH_INTERFACES(PefGuest,

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)
Expand Down
10 changes: 7 additions & 3 deletions hw/ppc/spapr.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
#include "hw/virtio/vhost-scsi-common.h"

#include "exec/ram_addr.h"
#include "exec/confidential-guest-support.h"
#include "hw/usb.h"
#include "qemu/config-file.h"
#include "qemu/error-report.h"
Expand All @@ -87,7 +88,6 @@
#include "hw/ppc/spapr_tpm_proxy.h"
#include "hw/ppc/spapr_nvdimm.h"
#include "hw/ppc/spapr_numa.h"
#include "hw/ppc/pef.h"

#include "monitor/monitor.h"

Expand Down Expand Up @@ -1715,7 +1715,9 @@ static void spapr_machine_reset(MachineState *machine, ShutdownCause reason)
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_nested_reset(spapr);

Expand Down Expand Up @@ -2841,7 +2843,9 @@ static void spapr_machine_init(MachineState *machine)
/*
* 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;

Expand Down
17 changes: 0 additions & 17 deletions include/hw/ppc/pef.h

This file was deleted.

0 comments on commit 00a238b

Please sign in to comment.