Subject: [PATCH] powerpc/powernv: Fix little endian issues in OPAL flash code

From: Anton Blanchard <[email-masked]>
Date: Thu, 24 Apr 2014 07:25:34 +1000

With this patch I was able to update firmware on an LE kernel.

Signed-off-by: Anton Blanchard <[email-masked]>
---
 arch/powerpc/platforms/powernv/opal-flash.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/opal-flash.c b/arch/powerpc/platforms/powernv/opal-flash.c
index 10ae1b6..becd7be 100644
--- a/arch/powerpc/platforms/powernv/opal-flash.c
+++ b/arch/powerpc/platforms/powernv/opal-flash.c
@@ -128,11 +128,15 @@ static DEFINE_MUTEX(image_data_mutex);
  */
 static inline void opal_flash_validate(void)
 {
-	struct validate_flash_t *args_buf = &validate_flash_data;
+	long ret;
+	void *buf = validate_flash_data.buf;
+	__be32 size, result;
+
+	ret = opal_validate_flash(__pa(buf), &size, &result);
 
-	args_buf->status = opal_validate_flash(__pa(args_buf->buf),
-					       &(args_buf->buf_size),
-					       &(args_buf->result));
+	validate_flash_data.status = ret;
+	validate_flash_data.buf_size = be32_to_cpu(size);
+	validate_flash_data.result = be32_to_cpu(result);
 }
 
 /*
-- 
1.8.3.2