]> git.itanic.dy.fi Git - linux-stable/commit
net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs
authorErez Shitrit <erezsh@nvidia.com>
Thu, 9 Mar 2023 14:43:15 +0000 (16:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 May 2023 13:03:32 +0000 (14:03 +0100)
commite501ab136691c33f50b20de19b22b7ef53b409f5
treee114c20eb347f58d33b9772a7a2e8ddb8d37d8fa
parent6f0dce5f7822f6e172cbb11f31816ffcaeb83df2
net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs

commit 1e5daf5565b61a96e570865091589afc9156e3d3 upstream.

When calculating crc for hash index we use the function crc32 that
calculates for little-endian (LE) arch.
Then we convert it to network endianness using htonl(), but it's wrong
to do the conversion in BE archs since the crc32 value is already LE.

The solution is to switch the bytes from the crc result for all types
of arc.

Fixes: 40416d8ede65 ("net/mlx5: DR, Replace CRC32 implementation to use kernel lib")
Signed-off-by: Erez Shitrit <erezsh@nvidia.com>
Reviewed-by: Alex Vesker <valex@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.c