ethtool: don't call set_channels in drivers if config didn't change
authorJakub Kicinski <kuba@kernel.org>
Fri, 15 May 2020 19:49:02 +0000 (12:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 16 May 2020 20:56:30 +0000 (13:56 -0700)
Don't call drivers if nothing changed. Netlink code already
contains this logic.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ethtool/ioctl.c

index a574d60..eeb1137 100644 (file)
@@ -1669,6 +1669,12 @@ static noinline_for_stack int ethtool_set_channels(struct net_device *dev,
 
        dev->ethtool_ops->get_channels(dev, &curr);
 
+       if (channels.rx_count == curr.rx_count &&
+           channels.tx_count == curr.tx_count &&
+           channels.combined_count == curr.combined_count &&
+           channels.other_count == curr.other_count)
+               return 0;
+
        /* ensure new counts are within the maximums */
        if (channels.rx_count > curr.max_rx ||
            channels.tx_count > curr.max_tx ||