]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
net: sfc: reject unsupported coalescing params
authorJakub Kicinski <kuba@kernel.org>
Mon, 16 Mar 2020 20:47:04 +0000 (13:47 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Mar 2020 03:56:57 +0000 (20:56 -0700)
Set ethtool_ops->supported_coalesce_params to let
the core reject unsupported coalescing parameters.

This driver did not previously reject unsupported parameters.
The check for use_adaptive_tx_coalesce will now be done by
the core.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ethtool.c
drivers/net/ethernet/sfc/falcon/ethtool.c

index 9a637cd67f43fde03db51a83da66f8145b1f5648..04e88d05e8fff29618739953bcb68b8186c94ece 100644 (file)
@@ -232,9 +232,6 @@ static int efx_ethtool_set_coalesce(struct net_device *net_dev,
        bool adaptive, rx_may_override_tx;
        int rc;
 
-       if (coalesce->use_adaptive_tx_coalesce)
-               return -EINVAL;
-
        efx_get_irq_moderation(efx, &tx_usecs, &rx_usecs, &adaptive);
 
        if (coalesce->rx_coalesce_usecs != rx_usecs)
@@ -1138,6 +1135,9 @@ static int efx_ethtool_set_fecparam(struct net_device *net_dev,
 }
 
 const struct ethtool_ops efx_ethtool_ops = {
+       .supported_coalesce_params = ETHTOOL_COALESCE_USECS |
+                                    ETHTOOL_COALESCE_USECS_IRQ |
+                                    ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
        .get_drvinfo            = efx_ethtool_get_drvinfo,
        .get_regs_len           = efx_ethtool_get_regs_len,
        .get_regs               = efx_ethtool_get_regs,
index 08bd6a321918c63677801c13ade4c0c8e18e3e5f..db90d94e24c92525880cf3a38332fb38d7c20964 100644 (file)
@@ -603,9 +603,6 @@ static int ef4_ethtool_set_coalesce(struct net_device *net_dev,
        bool adaptive, rx_may_override_tx;
        int rc;
 
-       if (coalesce->use_adaptive_tx_coalesce)
-               return -EINVAL;
-
        ef4_get_irq_moderation(efx, &tx_usecs, &rx_usecs, &adaptive);
 
        if (coalesce->rx_coalesce_usecs != rx_usecs)
@@ -1311,6 +1308,9 @@ static int ef4_ethtool_get_module_info(struct net_device *net_dev,
 }
 
 const struct ethtool_ops ef4_ethtool_ops = {
+       .supported_coalesce_params = ETHTOOL_COALESCE_USECS |
+                                    ETHTOOL_COALESCE_USECS_IRQ |
+                                    ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
        .get_drvinfo            = ef4_ethtool_get_drvinfo,
        .get_regs_len           = ef4_ethtool_get_regs_len,
        .get_regs               = ef4_ethtool_get_regs,