crc32: some minor cleanups
Joakim Tjernlund [Fri, 5 Mar 2010 21:43:55 +0000 (13:43 -0800)]
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

lib/crc32.c

index 02e3b31..0f45fbf 100644 (file)
 #include <asm/atomic.h>
 #include "crc32defs.h"
 #if CRC_LE_BITS == 8
-#define tole(x) __constant_cpu_to_le32(x)
-#define tobe(x) __constant_cpu_to_be32(x)
+# define tole(x) __constant_cpu_to_le32(x)
 #else
-#define tole(x) (x)
-#define tobe(x) (x)
+# define tole(x) (x)
+#endif
+
+#if CRC_BE_BITS == 8
+# define tobe(x) __constant_cpu_to_be32(x)
+#else
+# define tobe(x) (x)
 #endif
 #include "crc32table.h"
 
@@ -52,20 +56,19 @@ crc32_body(u32 crc, unsigned char const *buf, size_t len, const u32 *tab)
 # else
 #  define DO_CRC(x) crc = tab[((crc >> 24) ^ (x)) & 255] ^ (crc << 8)
 # endif
-       const u32 *b = (const u32 *)buf;
+       const u32 *b;
        size_t    rem_len;
 
        /* Align it */
-       if (unlikely((long)b & 3 && len)) {
-               u8 *p = (u8 *)b;
+       if (unlikely((long)buf & 3 && len)) {
                do {
-                       DO_CRC(*p++);
-               } while ((--len) && ((long)p)&3);
-               b = (u32 *)p;
+                       DO_CRC(*buf++);
+               } while ((--len) && ((long)buf)&3);
        }
        rem_len = len & 3;
        /* load data 32 bits wide, xor data 32 bits wide. */
        len = len >> 2;
+       b = (const u32 *)buf;
        for (--b; len; --len) {
                crc ^= *++b; /* use pre increment for speed */
                DO_CRC(0);
@@ -82,6 +85,7 @@ crc32_body(u32 crc, unsigned char const *buf, size_t len, const u32 *tab)
                } while (--len);
        }
        return crc;
+#undef DO_CRC
 }
 #endif
 /**
@@ -119,9 +123,6 @@ u32 __pure crc32_le(u32 crc, unsigned char const *p, size_t len)
        crc = __cpu_to_le32(crc);
        crc = crc32_body(crc, p, len, tab);
        return __le32_to_cpu(crc);
-#undef ENDIAN_SHIFT
-#undef DO_CRC
-
 # elif CRC_LE_BITS == 4
        while (len--) {
                crc ^= *p++;
@@ -179,9 +180,6 @@ u32 __pure crc32_be(u32 crc, unsigned char const *p, size_t len)
        crc = __cpu_to_be32(crc);
        crc = crc32_body(crc, p, len, tab);
        return __be32_to_cpu(crc);
-#undef ENDIAN_SHIFT
-#undef DO_CRC
-
 # elif CRC_BE_BITS == 4
        while (len--) {
                crc ^= *p++ << 24;