|
@@ -1094,12 +1094,21 @@ static int mlx4_en_set_ringparam(struct net_device *dev,
|
|
|
if (param->rx_jumbo_pending || param->rx_mini_pending)
|
|
|
return -EINVAL;
|
|
|
|
|
|
+ if (param->rx_pending < MLX4_EN_MIN_RX_SIZE) {
|
|
|
+ en_warn(priv, "%s: rx_pending (%d) < min (%d)\n",
|
|
|
+ __func__, param->rx_pending,
|
|
|
+ MLX4_EN_MIN_RX_SIZE);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+ if (param->tx_pending < MLX4_EN_MIN_TX_SIZE) {
|
|
|
+ en_warn(priv, "%s: tx_pending (%d) < min (%lu)\n",
|
|
|
+ __func__, param->tx_pending,
|
|
|
+ MLX4_EN_MIN_TX_SIZE);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
rx_size = roundup_pow_of_two(param->rx_pending);
|
|
|
- rx_size = max_t(u32, rx_size, MLX4_EN_MIN_RX_SIZE);
|
|
|
- rx_size = min_t(u32, rx_size, MLX4_EN_MAX_RX_SIZE);
|
|
|
tx_size = roundup_pow_of_two(param->tx_pending);
|
|
|
- tx_size = max_t(u32, tx_size, MLX4_EN_MIN_TX_SIZE);
|
|
|
- tx_size = min_t(u32, tx_size, MLX4_EN_MAX_TX_SIZE);
|
|
|
|
|
|
if (rx_size == (priv->port_up ? priv->rx_ring[0]->actual_size :
|
|
|
priv->rx_ring[0]->size) &&
|