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