|
@@ -31,6 +31,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <net/tc_act/tc_gact.h>
|
|
|
+#include <linux/crash_dump.h>
|
|
|
#include <net/pkt_cls.h>
|
|
|
#include <linux/mlx5/fs.h>
|
|
|
#include <net/vxlan.h>
|
|
@@ -83,7 +84,9 @@ static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
|
|
|
priv->params.rq_wq_type = rq_type;
|
|
|
switch (priv->params.rq_wq_type) {
|
|
|
case MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ:
|
|
|
- priv->params.log_rq_size = MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE_MPW;
|
|
|
+ priv->params.log_rq_size = is_kdump_kernel() ?
|
|
|
+ MLX5E_PARAMS_MINIMUM_LOG_RQ_SIZE_MPW :
|
|
|
+ MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE_MPW;
|
|
|
priv->params.mpwqe_log_stride_sz =
|
|
|
MLX5E_GET_PFLAG(priv, MLX5E_PFLAG_RX_CQE_COMPRESS) ?
|
|
|
MLX5_MPWRQ_LOG_STRIDE_SIZE_CQE_COMPRESS :
|
|
@@ -92,7 +95,9 @@ static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
|
|
|
priv->params.mpwqe_log_stride_sz;
|
|
|
break;
|
|
|
default: /* MLX5_WQ_TYPE_LINKED_LIST */
|
|
|
- priv->params.log_rq_size = MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE;
|
|
|
+ priv->params.log_rq_size = is_kdump_kernel() ?
|
|
|
+ MLX5E_PARAMS_MINIMUM_LOG_RQ_SIZE :
|
|
|
+ MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE;
|
|
|
}
|
|
|
priv->params.min_rx_wqes = mlx5_min_rx_wqes(priv->params.rq_wq_type,
|
|
|
BIT(priv->params.log_rq_size));
|
|
@@ -1508,6 +1513,14 @@ static int mlx5e_set_tx_maxrate(struct net_device *dev, int index, u32 rate)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
+static inline int mlx5e_get_max_num_channels(struct mlx5_core_dev *mdev)
|
|
|
+{
|
|
|
+ return is_kdump_kernel() ?
|
|
|
+ MLX5E_MIN_NUM_CHANNELS :
|
|
|
+ min_t(int, mdev->priv.eq_table.num_comp_vectors,
|
|
|
+ MLX5E_MAX_NUM_CHANNELS);
|
|
|
+}
|
|
|
+
|
|
|
static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix,
|
|
|
struct mlx5e_channel_param *cparam,
|
|
|
struct mlx5e_channel **cp)
|
|
@@ -3491,7 +3504,9 @@ static void mlx5e_build_nic_netdev_priv(struct mlx5_core_dev *mdev,
|
|
|
priv->params.lro_timeout =
|
|
|
mlx5e_choose_lro_timeout(mdev, MLX5E_DEFAULT_LRO_TIMEOUT);
|
|
|
|
|
|
- priv->params.log_sq_size = MLX5E_PARAMS_DEFAULT_LOG_SQ_SIZE;
|
|
|
+ priv->params.log_sq_size = is_kdump_kernel() ?
|
|
|
+ MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE :
|
|
|
+ MLX5E_PARAMS_DEFAULT_LOG_SQ_SIZE;
|
|
|
|
|
|
/* set CQE compression */
|
|
|
priv->params.rx_cqe_compress_def = false;
|