aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTariq Toukan <tariqt@mellanox.com>2017-02-22 10:20:13 -0500
committerDavid S. Miller <davem@davemloft.net>2017-02-23 10:43:09 -0500
commit4078e637c12f1e0a74293f1ec9563f42bff14a03 (patch)
tree599452d76624f14e4632c6e7522924b1db38a890 /drivers
parent6f08a22c5fb2b9aefb8ecd8496758e7a677c1fde (diff)
net/mlx5e: Do not reduce LRO WQE size when not using build_skb
When rq_type is Striding RQ, no room of SKB_RESERVE is needed as SKB allocation is not done via build_skb. Fixes: e4b85508072b ("net/mlx5e: Slightly reduce hardware LRO size") Signed-off-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_main.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index c24366868b39..0d58729b42ae 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -82,6 +82,7 @@ static bool mlx5e_check_fragmented_striding_rq_cap(struct mlx5_core_dev *mdev)
82static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type) 82static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
83{ 83{
84 priv->params.rq_wq_type = rq_type; 84 priv->params.rq_wq_type = rq_type;
85 priv->params.lro_wqe_sz = MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ;
85 switch (priv->params.rq_wq_type) { 86 switch (priv->params.rq_wq_type) {
86 case MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ: 87 case MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ:
87 priv->params.log_rq_size = is_kdump_kernel() ? 88 priv->params.log_rq_size = is_kdump_kernel() ?
@@ -98,6 +99,10 @@ static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
98 priv->params.log_rq_size = is_kdump_kernel() ? 99 priv->params.log_rq_size = is_kdump_kernel() ?
99 MLX5E_PARAMS_MINIMUM_LOG_RQ_SIZE : 100 MLX5E_PARAMS_MINIMUM_LOG_RQ_SIZE :
100 MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE; 101 MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE;
102
103 /* Extra room needed for build_skb */
104 priv->params.lro_wqe_sz -= MLX5_RX_HEADROOM +
105 SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
101 } 106 }
102 priv->params.min_rx_wqes = mlx5_min_rx_wqes(priv->params.rq_wq_type, 107 priv->params.min_rx_wqes = mlx5_min_rx_wqes(priv->params.rq_wq_type,
103 BIT(priv->params.log_rq_size)); 108 BIT(priv->params.log_rq_size));
@@ -3547,12 +3552,6 @@ static void mlx5e_build_nic_netdev_priv(struct mlx5_core_dev *mdev,
3547 mlx5e_build_default_indir_rqt(mdev, priv->params.indirection_rqt, 3552 mlx5e_build_default_indir_rqt(mdev, priv->params.indirection_rqt,
3548 MLX5E_INDIR_RQT_SIZE, profile->max_nch(mdev)); 3553 MLX5E_INDIR_RQT_SIZE, profile->max_nch(mdev));
3549 3554
3550 priv->params.lro_wqe_sz =
3551 MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ -
3552 /* Extra room needed for build_skb */
3553 MLX5_RX_HEADROOM -
3554 SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
3555
3556 /* Initialize pflags */ 3555 /* Initialize pflags */
3557 MLX5E_SET_PFLAG(priv, MLX5E_PFLAG_RX_CQE_BASED_MODER, 3556 MLX5E_SET_PFLAG(priv, MLX5E_PFLAG_RX_CQE_BASED_MODER,
3558 priv->params.rx_cq_period_mode == MLX5_CQ_PERIOD_MODE_START_FROM_CQE); 3557 priv->params.rx_cq_period_mode == MLX5_CQ_PERIOD_MODE_START_FROM_CQE);