From fb1609de95b52594356966fcf185b2238acd22dd Mon Sep 17 00:00:00 2001 From: hselasky Date: Thu, 16 May 2019 18:22:46 +0000 Subject: [PATCH] MFC r347316: Fix for compilation warning in mlx5en(4). Function 'mlx5e_alloc_rx_wqe' can never be inlined because it uses alloca (override using the always_inline attribute) Sponsored by: Mellanox Technologies --- sys/dev/mlx5/mlx5_en/en.h | 2 ++ sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 3 +++ sys/dev/mlx5/mlx5_en/mlx5_en_rx.c | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/dev/mlx5/mlx5_en/en.h b/sys/dev/mlx5/mlx5_en/en.h index fde3039c5ef..5b82f18537e 100644 --- a/sys/dev/mlx5/mlx5_en/en.h +++ b/sys/dev/mlx5/mlx5_en/en.h @@ -85,6 +85,8 @@ #define MLX5E_PARAMS_DEFAULT_LOG_RQ_SIZE 0xa #define MLX5E_PARAMS_MAXIMUM_LOG_RQ_SIZE 0xe +#define MLX5E_MAX_BUSDMA_RX_SEGS 15 + #define MLX5E_MAX_RX_SEGS 7 #ifndef MLX5E_MAX_RX_BYTES diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index 68a8bce31dc..520d7bf404d 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -2134,6 +2134,9 @@ mlx5e_get_wqe_sz(struct mlx5e_priv *priv, u32 *wqe_sz, u32 *nsegs) for (n = howmany(r, MLX5E_MAX_RX_BYTES); !powerof2(n + 1); n++) ; + if (n > MLX5E_MAX_BUSDMA_RX_SEGS) + return (-ENOMEM); + *wqe_sz = r; *nsegs = n; return (0); diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c b/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c index b91f287780c..4a763cdfe71 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c @@ -32,7 +32,7 @@ static inline int mlx5e_alloc_rx_wqe(struct mlx5e_rq *rq, struct mlx5e_rx_wqe *wqe, u16 ix) { - bus_dma_segment_t segs[rq->nsegs]; + bus_dma_segment_t segs[MLX5E_MAX_BUSDMA_RX_SEGS]; struct mbuf *mb; int nsegs; int err; -- 2.45.0