svn commit: r359847 - stable/10/sys/dev/mlx5/mlx5_en
Hans Petter Selasky
hselasky at FreeBSD.org
Mon Apr 13 08:33:50 UTC 2020
Author: hselasky
Date: Mon Apr 13 08:33:49 2020
New Revision: 359847
URL: https://svnweb.freebsd.org/changeset/base/359847
Log:
MFC r359654:
Ensure a minimum inline size of 16 bytes in mlx5en(4).
This includes 14 bytes of ethernet header and 2 bytes of VLAN header.
This allows for making assumptions about the inline size limit
in the fast transmit path later on.
Use a signed integer variable to catch underflow.
Sponsored by: Mellanox Technologies
Modified:
stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c
==============================================================================
--- stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Apr 13 08:28:02 2020 (r359846)
+++ stable/10/sys/dev/mlx5/mlx5_en/mlx5_en_main.c Mon Apr 13 08:33:49 2020 (r359847)
@@ -2880,11 +2880,19 @@ mlx5e_check_required_hca_cap(struct mlx5_core_dev *mde
static u16
mlx5e_get_max_inline_cap(struct mlx5_core_dev *mdev)
{
- int bf_buf_size = (1 << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2;
+ const int min_size = ETHER_VLAN_ENCAP_LEN + ETHER_HDR_LEN;
+ const int max_size = MLX5E_MAX_TX_INLINE;
+ const int bf_buf_size =
+ ((1U << MLX5_CAP_GEN(mdev, log_bf_reg_size)) / 2U) -
+ (sizeof(struct mlx5e_tx_wqe) - 2);
- return bf_buf_size -
- sizeof(struct mlx5e_tx_wqe) +
- 2 /*sizeof(mlx5e_tx_wqe.inline_hdr_start)*/;
+ /* verify against driver limits */
+ if (bf_buf_size > max_size)
+ return (max_size);
+ else if (bf_buf_size < min_size)
+ return (min_size);
+ else
+ return (bf_buf_size);
}
static void
More information about the svn-src-all
mailing list