From: Rajesh B Prathipati <[email protected]>

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 <[email protected]>
---
This patch applies to linux kernel version 3.12. This patch has been tested and it fixes the problem with linux 3.12 USB stack.

--- linux/arch/powerpc/include/asm/unaligned.h.orig 2013-12-12 00:07:05.329073544 -0200 +++ linux/arch/powerpc/include/asm/unaligned.h 2013-12-11 23:56:52.918630238 -0200
@@ -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 */

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to