Commit 7a5917e9 authored by Jan Beulich's avatar Jan Beulich Committed by H. Peter Anvin

x86, hash: Simplify switch, add __init annotation

Minor cleanups:

- simplify switch statement
- add __init annotation to setup_arch_fast_hash()
Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
Link: http://lkml.kernel.org/r/530F09CE020000780011FBEF@nat28.tlf.novell.com
Cc: Francesco Fusco <ffusco@redhat.com>
Cc: Thomas Graf <tgraf@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Acked-by: default avatarDaniel Borkmann <dborkman@redhat.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent c5cdfdf9
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
*/ */
#include <linux/hash.h> #include <linux/hash.h>
#include <linux/init.h>
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/cpufeature.h> #include <asm/cpufeature.h>
...@@ -55,17 +56,16 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed) ...@@ -55,17 +56,16 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
for (i = 0; i < len / 4; i++) for (i = 0; i < len / 4; i++)
seed = crc32_u32(seed, *p32++); seed = crc32_u32(seed, *p32++);
switch (3 - (len & 0x03)) { switch (len & 3) {
case 0: case 3:
tmp |= *((const u8 *) p32 + 2) << 16; tmp |= *((const u8 *) p32 + 2) << 16;
/* fallthrough */ /* fallthrough */
case 1: case 2:
tmp |= *((const u8 *) p32 + 1) << 8; tmp |= *((const u8 *) p32 + 1) << 8;
/* fallthrough */ /* fallthrough */
case 2: case 1:
tmp |= *((const u8 *) p32); tmp |= *((const u8 *) p32);
seed = crc32_u32(seed, tmp); seed = crc32_u32(seed, tmp);
default:
break; break;
} }
...@@ -83,7 +83,7 @@ static u32 intel_crc4_2_hash2(const u32 *data, u32 len, u32 seed) ...@@ -83,7 +83,7 @@ static u32 intel_crc4_2_hash2(const u32 *data, u32 len, u32 seed)
return seed; return seed;
} }
void setup_arch_fast_hash(struct fast_hash_ops *ops) void __init setup_arch_fast_hash(struct fast_hash_ops *ops)
{ {
if (cpu_has_xmm4_2) { if (cpu_has_xmm4_2) {
ops->hash = intel_crc4_2_hash; ops->hash = intel_crc4_2_hash;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment