diff options
author | Dragos Tatulea <dtatulea@nvidia.com> | 2024-08-13 13:34:54 +0300 |
---|---|---|
committer | Saeed Mahameed <saeedm@nvidia.com> | 2024-09-25 23:15:46 +0300 |
commit | 023d2a43ed0d9ab73d4a35757121e4c8e01298e5 (patch) | |
tree | b52ff23c7e37fb733fbca892cc11371ba9bb048f /drivers/net | |
parent | d15525f300109fac5477dce1b8fef244c5dc9ec3 (diff) | |
download | linux-023d2a43ed0d9ab73d4a35757121e4c8e01298e5.tar.xz |
net/mlx5e: SHAMPO, Fix overflow of hd_per_wq
When having larger RQ sizes and small MTUs sizes, the hd_per_wq variable
can overflow. Like in the following case:
$> ethtool --set-ring eth1 rx 8192
$> ip link set dev eth1 mtu 144
$> ethtool --features eth1 rx-gro-hw on
... yields in dmesg:
mlx5_core 0000:08:00.1: mlx5_cmd_out_err:808:(pid 194797): CREATE_MKEY(0x200) op_mod(0x0) failed, status bad parameter(0x3), syndrome (0x3bf6f), err(-22)
because hd_per_wq is 64K which overflows to 0 and makes the command
fail.
This patch increases the variable size to 32 bit.
Fixes: 99be56171fa9 ("net/mlx5e: SHAMPO, Re-enable HW-GRO")
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index da0a1c65ec4a..57b7298a0e79 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -627,7 +627,7 @@ struct mlx5e_shampo_hd { struct mlx5e_dma_info *info; struct mlx5e_frag_page *pages; u16 curr_page_index; - u16 hd_per_wq; + u32 hd_per_wq; u16 hd_per_wqe; unsigned long *bitmap; u16 pi; |