| From e6eb2eba494d6f99e69ca3c3748cd37a2544ab38 Mon Sep 17 00:00:00 2001 |
| From: Laurent Dufour <ldufour@linux.vnet.ibm.com> |
| Date: Thu, 15 Jan 2015 18:23:47 +0100 |
| Subject: powerpc/xmon: Fix another endiannes issue in RTAS call from xmon |
| |
| From: Laurent Dufour <ldufour@linux.vnet.ibm.com> |
| |
| commit e6eb2eba494d6f99e69ca3c3748cd37a2544ab38 upstream. |
| |
| 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. |
| |
| This fix addresses this hole. |
| |
| Reported-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/xmon/xmon.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/arch/powerpc/xmon/xmon.c |
| +++ b/arch/powerpc/xmon/xmon.c |
| @@ -293,6 +293,7 @@ static inline void disable_surveillance( |
| 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]; |