mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-13 08:06:58 +00:00
net/mlx5e: Don't try to modify CQ moderation if it is not supported
If CQ moderation is not supported by the device, print a warning on netdevice load, and return error when trying to modify/query cq moderation via ethtool. Fixes: f62b8bb8f2d3 ('net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality') Signed-off-by: Gal Pressman <galp@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
556dd1b9c3
commit
7524a5d88b
@ -400,6 +400,9 @@ static int mlx5e_get_coalesce(struct net_device *netdev,
|
||||
{
|
||||
struct mlx5e_priv *priv = netdev_priv(netdev);
|
||||
|
||||
if (!MLX5_CAP_GEN(priv->mdev, cq_moderation))
|
||||
return -ENOTSUPP;
|
||||
|
||||
coal->rx_coalesce_usecs = priv->params.rx_cq_moderation_usec;
|
||||
coal->rx_max_coalesced_frames = priv->params.rx_cq_moderation_pkts;
|
||||
coal->tx_coalesce_usecs = priv->params.tx_cq_moderation_usec;
|
||||
@ -417,6 +420,9 @@ static int mlx5e_set_coalesce(struct net_device *netdev,
|
||||
int tc;
|
||||
int i;
|
||||
|
||||
if (!MLX5_CAP_GEN(mdev, cq_moderation))
|
||||
return -ENOTSUPP;
|
||||
|
||||
priv->params.tx_cq_moderation_usec = coal->tx_coalesce_usecs;
|
||||
priv->params.tx_cq_moderation_pkts = coal->tx_max_coalesced_frames;
|
||||
priv->params.rx_cq_moderation_usec = coal->rx_coalesce_usecs;
|
||||
|
@ -870,12 +870,10 @@ static int mlx5e_open_cq(struct mlx5e_channel *c,
|
||||
if (err)
|
||||
goto err_destroy_cq;
|
||||
|
||||
err = mlx5_core_modify_cq_moderation(mdev, &cq->mcq,
|
||||
moderation_usecs,
|
||||
moderation_frames);
|
||||
if (err)
|
||||
goto err_destroy_cq;
|
||||
|
||||
if (MLX5_CAP_GEN(mdev, cq_moderation))
|
||||
mlx5_core_modify_cq_moderation(mdev, &cq->mcq,
|
||||
moderation_usecs,
|
||||
moderation_frames);
|
||||
return 0;
|
||||
|
||||
err_destroy_cq:
|
||||
@ -2218,6 +2216,8 @@ static int mlx5e_check_required_hca_cap(struct mlx5_core_dev *mdev)
|
||||
}
|
||||
if (!MLX5_CAP_ETH(mdev, self_lb_en_modifiable))
|
||||
mlx5_core_warn(mdev, "Self loop back prevention is not supported\n");
|
||||
if (!MLX5_CAP_GEN(mdev, cq_moderation))
|
||||
mlx5_core_warn(mdev, "CQ modiration is not supported\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user