x86, hash: Swap arguments passed to crc32_u32()
... to match the function's parameters. While reportedly commutative, using the proper order allows for leveraging the instruction permitting the source operand to be in memory. [ hpa: This code originated in the dpdk toolkit. This was a bug in dpdk which has recently been fixed in part due to an earlier version of this patch. ] Signed-off-by: Jan Beulich <jbeulich@suse.com> Link: http://lkml.kernel.org/r/530F09B6020000780011FBEB@nat28.tlf.novell.com Acked-by: Daniel Borkmann <dborkman@redhat.com> Cc: Francesco Fusco <ffusco@redhat.com> Cc: Thomas Graf <tgraf@redhat.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
parent
06325190bd
commit
c5cdfdf909
|
@ -53,7 +53,7 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
|
|||
u32 i, tmp = 0;
|
||||
|
||||
for (i = 0; i < len / 4; i++)
|
||||
seed = crc32_u32(*p32++, seed);
|
||||
seed = crc32_u32(seed, *p32++);
|
||||
|
||||
switch (3 - (len & 0x03)) {
|
||||
case 0:
|
||||
|
@ -64,7 +64,7 @@ static u32 intel_crc4_2_hash(const void *data, u32 len, u32 seed)
|
|||
/* fallthrough */
|
||||
case 2:
|
||||
tmp |= *((const u8 *) p32);
|
||||
seed = crc32_u32(tmp, seed);
|
||||
seed = crc32_u32(seed, tmp);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ static u32 intel_crc4_2_hash2(const u32 *data, u32 len, u32 seed)
|
|||
u32 i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
seed = crc32_u32(*p32++, seed);
|
||||
seed = crc32_u32(seed, *p32++);
|
||||
|
||||
return seed;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue