powerpc: Make unaligned accesses endian-safe for powerpc
PATCH 1/1 powerpc: Make unaligned accesses endian-safe for powerpc
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.
arch/powerpc/include/asm/unaligned.h 2013-12-11 23:56:52.918630238 -0200 renamed from arch/powerpc/include/asm/unaligned.h.orig 2013-12-12 00:07:05.329073544 -0200 +6 -1
@@ -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 */
PATCH 1/1 powerpc: Make unaligned accesses endian-safe for powerpc
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]>
Signed-off-by Anton Blanchard <[email protected]>
---
arch/powerpc/include/asm/unaligned.h +6 -1
@@ -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 */