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]);
>          }
>      }
>  


Reply via email to