diff mbox series

powerpc/prom_init: Include the termination message in ibm,os-term RTAS call

Message ID 20200324201211.1055236-1-farosas@linux.ibm.com
State Not Applicable
Headers show
Series powerpc/prom_init: Include the termination message in ibm,os-term RTAS call | expand

Commit Message

Fabiano Rosas March 24, 2020, 8:12 p.m. UTC
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 <farosas@linux.ibm.com>
---
 arch/powerpc/kernel/prom_init.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Michael Ellerman March 25, 2020, 10:06 a.m. UTC | #1
Fabiano Rosas <farosas@linux.ibm.com> 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 <farosas@linux.ibm.com>
> ---
>  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?

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
Greg Kurz March 25, 2020, 10:34 a.m. UTC | #2
On Wed, 25 Mar 2020 21:06:22 +1100
Michael Ellerman <mpe@ellerman.id.au> wrote:

> Fabiano Rosas <farosas@linux.ibm.com> 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 <farosas@linux.ibm.com>
> > ---
> >  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
Ram Pai March 25, 2020, 1:24 p.m. UTC | #3
On Tue, Mar 24, 2020 at 05:12:11PM -0300, Fabiano Rosas wrote:
> 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 <farosas@linux.ibm.com>
> ---
>  arch/powerpc/kernel/prom_init.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> 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));
> +

Reviewed-by: Ram Pai <linuxram@us.ibm.com>

RP
Fabiano Rosas March 25, 2020, 1:24 p.m. UTC | #4
Michael Ellerman <mpe@ellerman.id.au> writes:

> Fabiano Rosas <farosas@linux.ibm.com> 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 <farosas@linux.ibm.com>
>> ---
>>  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?
>

Ah, all good then. Nothing to see here... =)

> 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
diff mbox series

Patch

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 */