diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 67d4c13ac573ea5ec8ecfe70d1a8252bcae57c69..81007b9d4ed2b7d1ea6ac9cfdbe25e8b8593d664 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1346,6 +1346,8 @@ static void ppc_spapr_reset(void) if (!spapr->cas_reboot) { spapr_ovec_cleanup(spapr->ov5_cas); spapr->ov5_cas = spapr_ovec_new(); + + ppc_set_compat_all(spapr->max_compat_pvr, &error_fatal); } fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size); diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 97472fd32a9ada108f3dfeed99bb5db9097ab00c..d6719d5f783ba2d90d862a66654e0ec7c5731bd3 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -118,16 +118,6 @@ static void spapr_cpu_init(sPAPRMachineState *spapr, PowerPCCPU *cpu, /* Enable PAPR mode in TCG or KVM */ cpu_ppc_set_papr(cpu, PPC_VIRTUAL_HYPERVISOR(spapr)); - if (spapr->max_compat_pvr) { - Error *local_err = NULL; - - ppc_set_compat(cpu, spapr->max_compat_pvr, &local_err); - if (local_err) { - error_propagate(errp, local_err); - return; - } - } - qemu_register_reset(spapr_cpu_reset, cpu); spapr_cpu_reset(cpu); }