Re: [PATCH] pseries/le: Fix another endiannes issue in RTAS call from xmon

From: Tyrel Datwyler
Date: Thu Jan 15 2015 - 14:44:25 EST


On 01/15/2015 09:23 AM, Laurent Dufour wrote:
> The commit 3b8a3c010969 ("powerpc/pseries: Fix endiannes issue in RTAS
> call from xmon") was fixing an endianness issue in the call made from
> xmon to RTAS.
>
> However, as Michael Ellerman noticed, this fix was not complete, the
> token value was not byte swapped. This lead to call an unexpected and
> most of the time unexisting RTAS function, which is silently ignored
> by RTAS.

Nit. Not so much that is silently ignored by RTAS as much as
disable_surveillance silently doesn't check the return status of the
RTAS call. Maybe a check is warranted and reporting of non-success.

-Tyrel

>
> This fix addresses this hole.
>
> Reported-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
> ---
> arch/powerpc/xmon/xmon.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 5b150f0c5df9..13c6e200b24e 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -337,6 +337,7 @@ static inline void disable_surveillance(void)
> args.token = rtas_token("set-indicator");
> if (args.token == RTAS_UNKNOWN_SERVICE)
> return;
> + args.token = cpu_to_be32(args.token);
> args.nargs = cpu_to_be32(3);
> args.nret = cpu_to_be32(1);
> args.rets = &args.args[3];
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/