Subject: Re: [PATCH] powerpc/prom_init: Include the termination message in ibm,os-term RTAS call

From: Greg Kurz <[email-masked]>
Date: Wed, 25 Mar 2020 11:34:12 +0100

On Wed, 25 Mar 2020 21:06:22 +1100
Michael Ellerman <[email-masked]> wrote:

> Fabiano Rosas <[email-masked]> writes:
> 
> > QEMU can now print the ibm,os-term message[1], so let's include it in
> > the RTAS call. E.g.:
> >
> >   qemu-system-ppc64: OS terminated: Switch to secure mode failed.
> >
> > 1- https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a4c3791ae0
> >
> > Signed-off-by: Fabiano Rosas <[email-masked]>
> > ---
> >  arch/powerpc/kernel/prom_init.c | 3 +++
> >  1 file changed, 3 insertions(+)
> 
> I have this queued:
>   https://patchwork.ozlabs.org/patch/1253390/
> 
> Which I think does the same thing?
> 

Alexey's patch also sets os_term_args.nret as indicated in PAPR.
Even if QEMU's handler for "ibm,os-term" doesn't seem to have
a use for nret, I think it's better to stick to the spec.

Cheers,

--
Greg

> cheers
> 
> > diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> > index 577345382b23..d543fb6d29c5 100644
> > --- a/arch/powerpc/kernel/prom_init.c
> > +++ b/arch/powerpc/kernel/prom_init.c
> > @@ -1773,6 +1773,9 @@ static void __init prom_rtas_os_term(char *str)
> >  	if (token == 0)
> >  		prom_panic("Could not get token for ibm,os-term\n");
> >  	os_term_args.token = cpu_to_be32(token);
> > +	os_term_args.nargs = cpu_to_be32(1);
> > +	os_term_args.args[0] = cpu_to_be32(__pa(str));
> > +
> >  	prom_rtas_hcall((uint64_t)&os_term_args);
> >  }
> >  #endif /* CONFIG_PPC_SVM */
> > -- 
> > 2.23.0