Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

revert "crc32: use __BYTE_ORDER macro for endian detection"

It doesn't work on big-endian - those architectures don't define
__LITTLE_ENDIAN.

Cc: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Andrew Morton and committed by
Linus Torvalds
0d2daf5c cc68e3be

+1 -1
+1 -1
lib/crc32.c
··· 50 50 static inline u32 51 51 crc32_body(u32 crc, unsigned char const *buf, size_t len, const u32 (*tab)[256]) 52 52 { 53 - # if __BYTE_ORDER == __LITTLE_ENDIAN 53 + # ifdef __LITTLE_ENDIAN 54 54 # define DO_CRC(x) crc = tab[0][(crc ^ (x)) & 255] ^ (crc >> 8) 55 55 # define DO_CRC4 crc = tab[3][(crc) & 255] ^ \ 56 56 tab[2][(crc >> 8) & 255] ^ \