[Trusty/Utopic][SRU][PATCH] powerpc/xmon: Fix another endiannes issue in RTAS call from xmon

Chris J Arges chris.j.arges at canonical.com
Fri Jan 30 21:28:13 UTC 2015


From: Laurent Dufour <ldufour at linux.vnet.ibm.com>

BugLink: http://bugs.launchpad.net/bugs/1415919

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 at ellerman.id.au>
Cc: stable at vger.kernel.org
Signed-off-by: Laurent Dufour <ldufour at linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
(cherry picked from commit e6eb2eba494d6f99e69ca3c3748cd37a2544ab38)
Signed-off-by: Chris J Arges <chris.j.arges at canonical.com>
---
 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 c6c497b..e660d20 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -292,6 +292,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];
-- 
1.9.1





More information about the kernel-team mailing list