Fix issues reported by Peter. Fixes: ec9bafd2ea9d12c ("i386/sev: add support for confidential guest reset") Fixes: e76c30bb13ecb9d ("hw/machine: introduce machine specific option 'x-change-vmfd-on-reset'") Reported-by: Peter Maydell Reviewed-by: Reviewed-by: Zhao Liu Signed-off-by: Ani Sinha --- system/runstate.c | 5 ++++- target/i386/sev.c | 4 ---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/system/runstate.c b/system/runstate.c index eca722b43c..ca6730d111 100644 --- a/system/runstate.c +++ b/system/runstate.c @@ -512,9 +512,12 @@ void qemu_system_reset(ShutdownCause reason) ResetType type; AccelClass *ac = ACCEL_GET_CLASS(current_accel()); bool guest_state_rebuilt = false; + bool force_vmfd_change = false; int ret; mc = current_machine ? MACHINE_GET_CLASS(current_machine) : NULL; + force_vmfd_change = current_machine ? + current_machine->new_accel_vmfd_on_reset : false; cpu_synchronize_all_states(); @@ -528,7 +531,7 @@ void qemu_system_reset(ShutdownCause reason) if ((reason == SHUTDOWN_CAUSE_GUEST_RESET || reason == SHUTDOWN_CAUSE_HOST_QMP_SYSTEM_RESET) && - (current_machine->new_accel_vmfd_on_reset || !cpus_are_resettable())) { + (force_vmfd_change || !cpus_are_resettable())) { if (ac->rebuild_guest) { ret = ac->rebuild_guest(current_machine); if (ret < 0) { diff --git a/target/i386/sev.c b/target/i386/sev.c index cddffe0da8..9dde972c11 100644 --- a/target/i386/sev.c +++ b/target/i386/sev.c @@ -2011,10 +2011,6 @@ static void sev_handle_reset(Object *obj, ResetType type) SevCommonState *sev_common = SEV_COMMON(MACHINE(qdev_get_machine())->cgs); SevCommonStateClass *klass = SEV_COMMON_GET_CLASS(sev_common); - if (!sev_common) { - return; - } - if (!runstate_is_running()) { return; } -- 2.42.0