Commit 88f42c67 authored by David Gibson's avatar David Gibson
Browse files

spapr: Set compatibility mode before the rest of spapr_cpu_reset()



Although the order doesn't really matter at the moment, it's possible
other initializastions could depend on the compatiblity mode, so make sure
we set it first in spapr_cpu_reset().

While we're at it drop the test against first_cpu.  Setting the compat mode
to the value it already has is redundant, but harmless, so we might as well
make a small simplification to the code.

Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Reviewed-by: default avatarGreg Kurz <groug@kaod.org>
parent 4550f6a5
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -31,6 +31,11 @@ static void spapr_cpu_reset(void *opaque)

    cpu_reset(cs);

    /* Set compatibility mode to match the boot CPU, which was either set
     * by the machine reset code or by CAS. This should never fail.
     */
    ppc_set_compat(cpu, POWERPC_CPU(first_cpu)->compat_pvr, &error_abort);

    /* All CPUs start halted.  CPU0 is unhalted from the machine level
     * reset code and the rest are explicitly started up by the guest
     * using an RTAS call */
@@ -45,12 +50,6 @@ static void spapr_cpu_reset(void *opaque)
        env->spr[SPR_LPCR] &= ~pcc->lpcr_pm;
    }

    /* Set compatibility mode to match the boot CPU, which was either set
     * by the machine reset code or by CAS. This should never fail.
     */
    if (cs != first_cpu) {
        ppc_set_compat(cpu, POWERPC_CPU(first_cpu)->compat_pvr, &error_abort);
    }
}

static void spapr_cpu_destroy(PowerPCCPU *cpu)