Hi Dave,
This patchset by Jenny adds sanity checks in ethtool ringparam
operation for input upper bounds, similarly to what's done in
ethtool_set_channels.
The checks are added in patch 1, using a call to get_ringparam
prior to calling set_ringparam NDO.
Patch 2 changes the function's behavior in mlx4_en, so that
it returns an error for out-of-range input, instead of rounding
it to closest valid, similar to mlx5e.
Patch 3 removes the upper bound checks in mlx5e_ethtool_set_ringparam
as it becomes redundant.
Series generated against net-next commit:
f66faae2f80a Merge branch 'ipv6-ipv4-nexthop-align'
Thanks,
Tariq.
Eugenia Emantayev (3):
ethtool: Ensure new ring parameters are within bounds during
SRINGPARAM
net/mlx4_en: Align behavior of set ring size flow via ethtool
net/mlx5e: Remove redundant checks in set_ringparam
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 17 +++++++++++++----
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 15 ---------------
net/core/ethtool.c | 13 +++++++++++--
3 files changed, 24 insertions(+), 21 deletions(-)
--
1.8.3.1
From: Eugenia Emantayev <redacted>
Since the checks are done in upper layer ethtool code,
checks in driver are not needed any more.
Signed-off-by: Eugenia Emantayev <redacted>
Signed-off-by: Tariq Toukan <redacted>
---
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 15 ---------------
1 file changed, 15 deletions(-)
From: Eugenia Emantayev <redacted>
In current implementation, any requested RX/TX ring size value
that is less than minimum is silently casted to nearest valid value.
Update this behavior to align with mlx5 behavior by printing warning
in dmesg and remaining the size unchanged.
Kernel is responsible for verifying against the maximum.
Signed-off-by: Eugenia Emantayev <redacted>
Signed-off-by: Tariq Toukan <redacted>
---
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
From: Eugenia Emantayev <redacted>
Add a sanity check to ensure that all requested ring parameters
are within bounds, which should reduce errors in driver implementation.
Signed-off-by: Eugenia Emantayev <redacted>
Signed-off-by: Tariq Toukan <redacted>
---
net/core/ethtool.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
@@ -1704,14 +1704,23 @@ static int ethtool_get_ringparam(struct net_device *dev, void __user *useraddr)staticintethtool_set_ringparam(structnet_device*dev,void__user*useraddr){-structethtool_ringparamringparam;+structethtool_ringparamringparam,max={.cmd=ETHTOOL_GRINGPARAM};-if(!dev->ethtool_ops->set_ringparam)+if(!dev->ethtool_ops->set_ringparam||!dev->ethtool_ops->get_ringparam)return-EOPNOTSUPP;if(copy_from_user(&ringparam,useraddr,sizeof(ringparam)))return-EFAULT;+dev->ethtool_ops->get_ringparam(dev,&max);++/* ensure new ring parameters are within the maximums */+if(ringparam.rx_pending>max.rx_max_pending||+ringparam.rx_mini_pending>max.rx_mini_max_pending||+ringparam.rx_jumbo_pending>max.rx_jumbo_max_pending||+ringparam.tx_pending>max.tx_max_pending)+return-EINVAL;+returndev->ethtool_ops->set_ringparam(dev,&ringparam);}
From: Jakub Kicinski <hidden> Date: 2018-01-09 02:23:48
On Mon, 8 Jan 2018 16:00:24 +0200, Tariq Toukan wrote:
From: Eugenia Emantayev <redacted>
Add a sanity check to ensure that all requested ring parameters
are within bounds, which should reduce errors in driver implementation.
On Mon, 8 Jan 2018 16:00:24 +0200, Tariq Toukan wrote:
quoted
From: Eugenia Emantayev <redacted>
Add a sanity check to ensure that all requested ring parameters
are within bounds, which should reduce errors in driver implementation.
This patchset by Jenny adds sanity checks in ethtool ringparam
operation for input upper bounds, similarly to what's done in
ethtool_set_channels.
The checks are added in patch 1, using a call to get_ringparam
prior to calling set_ringparam NDO.
Patch 2 changes the function's behavior in mlx4_en, so that
it returns an error for out-of-range input, instead of rounding
it to closest valid, similar to mlx5e.
Patch 3 removes the upper bound checks in mlx5e_ethtool_set_ringparam
as it becomes redundant.
Series generated against net-next commit:
f66faae2f80a Merge branch 'ipv6-ipv4-nexthop-align'