mirror of https://gitee.com/openkylin/linux.git
vmxnet3: let core reject the unsupported coalescing parameters
Set ethtool_ops->supported_coalesce_params to let the core reject unsupported coalescing parameters. This driver correctly rejects all unsupported parameters. As a side effect of these changes the error code for unsupported params changes from EINVAL to EOPNOTSUPP. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e52a646b34
commit
0f3883b477
|
@ -780,27 +780,6 @@ vmxnet3_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec)
|
||||||
if (!VMXNET3_VERSION_GE_3(adapter))
|
if (!VMXNET3_VERSION_GE_3(adapter))
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
if (ec->rx_coalesce_usecs_irq ||
|
|
||||||
ec->rx_max_coalesced_frames_irq ||
|
|
||||||
ec->tx_coalesce_usecs ||
|
|
||||||
ec->tx_coalesce_usecs_irq ||
|
|
||||||
ec->tx_max_coalesced_frames_irq ||
|
|
||||||
ec->stats_block_coalesce_usecs ||
|
|
||||||
ec->use_adaptive_tx_coalesce ||
|
|
||||||
ec->pkt_rate_low ||
|
|
||||||
ec->rx_coalesce_usecs_low ||
|
|
||||||
ec->rx_max_coalesced_frames_low ||
|
|
||||||
ec->tx_coalesce_usecs_low ||
|
|
||||||
ec->tx_max_coalesced_frames_low ||
|
|
||||||
ec->pkt_rate_high ||
|
|
||||||
ec->rx_coalesce_usecs_high ||
|
|
||||||
ec->rx_max_coalesced_frames_high ||
|
|
||||||
ec->tx_coalesce_usecs_high ||
|
|
||||||
ec->tx_max_coalesced_frames_high ||
|
|
||||||
ec->rate_sample_interval) {
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((ec->rx_coalesce_usecs == 0) &&
|
if ((ec->rx_coalesce_usecs == 0) &&
|
||||||
(ec->use_adaptive_rx_coalesce == 0) &&
|
(ec->use_adaptive_rx_coalesce == 0) &&
|
||||||
(ec->tx_max_coalesced_frames == 0) &&
|
(ec->tx_max_coalesced_frames == 0) &&
|
||||||
|
@ -891,6 +870,9 @@ vmxnet3_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ec)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct ethtool_ops vmxnet3_ethtool_ops = {
|
static const struct ethtool_ops vmxnet3_ethtool_ops = {
|
||||||
|
.supported_coalesce_params = ETHTOOL_COALESCE_RX_USECS |
|
||||||
|
ETHTOOL_COALESCE_MAX_FRAMES |
|
||||||
|
ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
|
||||||
.get_drvinfo = vmxnet3_get_drvinfo,
|
.get_drvinfo = vmxnet3_get_drvinfo,
|
||||||
.get_regs_len = vmxnet3_get_regs_len,
|
.get_regs_len = vmxnet3_get_regs_len,
|
||||||
.get_regs = vmxnet3_get_regs,
|
.get_regs = vmxnet3_get_regs,
|
||||||
|
|
Loading…
Reference in New Issue