Skip to content

Commit

Permalink
x86, hash: Swap arguments passed to crc32_u32()
Browse files Browse the repository at this point in the history
... 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>
  • Loading branch information
Jan Beulich authored and H. Peter Anvin committed Mar 19, 2014
1 parent 0632519 commit c5cdfdf
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions arch/x86/lib/hash.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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;
}
Expand All @@ -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;
}
Expand Down

0 comments on commit c5cdfdf

Please sign in to comment.