Merge tag 'spdx-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[platform/kernel/linux-starfive.git] / lib / siphash.c
index f08fd98..15bc5b6 100644 (file)
 #include <asm/word-at-a-time.h>
 #endif
 
-#define SIPROUND \
-       do { \
-       v0 += v1; v1 = rol64(v1, 13); v1 ^= v0; v0 = rol64(v0, 32); \
-       v2 += v3; v3 = rol64(v3, 16); v3 ^= v2; \
-       v0 += v3; v3 = rol64(v3, 21); v3 ^= v0; \
-       v2 += v1; v1 = rol64(v1, 17); v1 ^= v2; v2 = rol64(v2, 32); \
-       } while (0)
+#define SIPROUND SIPHASH_PERMUTATION(v0, v1, v2, v3)
 
 #define PREAMBLE(len) \
-       u64 v0 = 0x736f6d6570736575ULL; \
-       u64 v1 = 0x646f72616e646f6dULL; \
-       u64 v2 = 0x6c7967656e657261ULL; \
-       u64 v3 = 0x7465646279746573ULL; \
+       u64 v0 = SIPHASH_CONST_0; \
+       u64 v1 = SIPHASH_CONST_1; \
+       u64 v2 = SIPHASH_CONST_2; \
+       u64 v3 = SIPHASH_CONST_3; \
        u64 b = ((u64)(len)) << 56; \
        v3 ^= key->key[1]; \
        v2 ^= key->key[0]; \
@@ -388,19 +382,13 @@ u32 hsiphash_4u32(const u32 first, const u32 second, const u32 third,
 }
 EXPORT_SYMBOL(hsiphash_4u32);
 #else
-#define HSIPROUND \
-       do { \
-       v0 += v1; v1 = rol32(v1, 5); v1 ^= v0; v0 = rol32(v0, 16); \
-       v2 += v3; v3 = rol32(v3, 8); v3 ^= v2; \
-       v0 += v3; v3 = rol32(v3, 7); v3 ^= v0; \
-       v2 += v1; v1 = rol32(v1, 13); v1 ^= v2; v2 = rol32(v2, 16); \
-       } while (0)
+#define HSIPROUND HSIPHASH_PERMUTATION(v0, v1, v2, v3)
 
 #define HPREAMBLE(len) \
-       u32 v0 = 0; \
-       u32 v1 = 0; \
-       u32 v2 = 0x6c796765U; \
-       u32 v3 = 0x74656462U; \
+       u32 v0 = HSIPHASH_CONST_0; \
+       u32 v1 = HSIPHASH_CONST_1; \
+       u32 v2 = HSIPHASH_CONST_2; \
+       u32 v3 = HSIPHASH_CONST_3; \
        u32 b = ((u32)(len)) << 24; \
        v3 ^= key->key[1]; \
        v2 ^= key->key[0]; \