From: Philippe Bergheaud <felix@linux.vnet.ibm.com>
Subject: powerpc: Make unaligned accesses endian-safe for powerpc
Git-commit: e8a00ad5e238421ded856ea39f692b94c2d324eb
Patch-mainline: v3.13-rc7
References: bnc#863310, fate#315275, LTC#92305

Summary:     ## powerpc: add little-endian support
Description: ## Add little-endian support for POWER8.

Upstream-Description:

    powerpc: Make unaligned accesses endian-safe for powerpc
    
    The generic put_unaligned/get_unaligned macros were made endian-safe by
    calling the appropriate endian dependent macros based on the endian type
    of the powerpc processor.
    
Signed-off-by: Rajesh B Prathipati <rprathip@linux.vnet.ibm.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com>
Acked-by: Torsten Duwe <duwe@suse.de>
---
 arch/powerpc/include/asm/unaligned.h |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/include/asm/unaligned.h b/arch/powerpc/include/asm/unaligned.h
index 5f1b1e3..8296381 100644
--- a/arch/powerpc/include/asm/unaligned.h
+++ b/arch/powerpc/include/asm/unaligned.h
@@ -4,13 +4,18 @@
 #ifdef __KERNEL__
 
 /*
- * The PowerPC can do unaligned accesses itself in big endian mode.
+ * The PowerPC can do unaligned accesses itself based on its endian mode.
  */
 #include <linux/unaligned/access_ok.h>
 #include <linux/unaligned/generic.h>
 
+#ifdef __LITTLE_ENDIAN__
+#define get_unaligned	__get_unaligned_le
+#define put_unaligned	__put_unaligned_le
+#else
 #define get_unaligned	__get_unaligned_be
 #define put_unaligned	__put_unaligned_be
+#endif
 
 #endif	/* __KERNEL__ */
 #endif	/* _ASM_POWERPC_UNALIGNED_H */
-- 
1.7.10.4

