File ppc64-diag.rtas_errd-Fix-PRRN-Event-handling-on-LE.patch of Package ppc64-diag.636

From f53bb968306ee868de781911e1d906879698c3cd Mon Sep 17 00:00:00 2001
From: "Suzuki K. Poulose" <suzuki@in.ibm.com>
Date: Tue, 9 Sep 2014 15:24:50 -0400
Subject: [PATCH 3/3] rtas_errd: Fix PRRN Event handling on LE

Fixes for PRRN event handling on LE systems

1) Convert the number of properties to host endian in i
   update_properties().
2) Use phandle in host endian while issuing an ofdt command,
   since we pass the phandle as a numeric string to the kernel.

With this patch the PRRN event handling works fine, however,
drmgr needs to support LE systems for a seemless operation of
the rtas_errd, since we depend on drmgr

Signed-off-by: Suzuki K. Poulose <suzuki@in.ibm.com>
Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
 rtas_errd/prrn.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/rtas_errd/prrn.c b/rtas_errd/prrn.c
index 7a791cb..8226ec1 100644
--- a/rtas_errd/prrn.c
+++ b/rtas_errd/prrn.c
@@ -342,7 +342,7 @@ static int update_properties(uint32_t phandle)
 		dbg("successful rtas_update_properties (more %d)", rc);
 
 		op = wa+4;
-		nprop = *op++;
+		nprop = be32toh(*op++);
 
 		/* Should just be on property to update, the affinity. Except
 		 * for reconfig memory, that is a single property for
@@ -374,7 +374,7 @@ static int update_properties(uint32_t phandle)
 				dbg("%s - delete property %s", pms->name,
 				    pname);
 				sprintf(cmd,"remove_property %u %s",
-					htobe32(phandle), pname);
+					phandle, pname);
 				do_update(cmd, strlen(cmd));
 				break;
 
@@ -412,7 +412,7 @@ static int update_properties(uint32_t phandle)
 					 */
 					lenpos = sprintf(longcmd,
 							 "update_property %u "
-							 "%s ", htobe32(phandle),
+							 "%s ", phandle,
 							 pname);
 					strcat(longcmd, "000000 ");
 					cmdlen = strlen(longcmd);
-- 
1.8.3.1

openSUSE Build Service is sponsored by