On Mon, 24 May 2021 13:41:32 +0200 Cédric Le Goater <[email protected]> wrote:
> Distros have started using the 'scv' instructions (glibc 2.33) which > relies on the LPCR AIL bits. Unfortunately, the LPCR of hot-plugged > CPUs is not synchronized with the rest of machine and it breaks the > guest OS. > > Fix that by using the first CPU to set the LPCR value of all hot-plugged > CPUs. > > Signed-off-by: Cédric Le Goater <[email protected]> > --- LGTM Reviewed-by: Greg Kurz <[email protected]> > hw/ppc/spapr.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index c23bcc449071..e463c2570c7a 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -3890,6 +3890,8 @@ static void spapr_core_plug(HotplugHandler > *hotplug_dev, DeviceState *dev) > for (i = 0; i < cc->nr_threads; i++) { > ppc_set_compat(core->threads[i], > POWERPC_CPU(first_cpu)->compat_pvr, > &error_abort); > + ppc_store_lpcr(core->threads[i], > + POWERPC_CPU(first_cpu)->env.spr[SPR_LPCR]); > } > } >
