ethtool: fix incorrect tx-checksumming settings reporting
authorVladyslav Tarasiuk <vladyslavt@mellanox.com>
Tue, 24 Mar 2020 11:57:08 +0000 (13:57 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 23:25:11 +0000 (16:25 -0700)
Currently, ethtool feature mask for checksum command is ORed with
NETIF_F_FCOE_CRC_BIT, which is bit's position number, instead of the
actual feature bit - NETIF_F_FCOE_CRC.

The invalid bitmask here might affect unrelated features when toggling
TX checksumming. For example, TX checksumming is always mistakenly
reported as enabled on the netdevs tested (mlx5, virtio_net).

Fixes: f70bb06563ed ("ethtool: update mapping of features to legacy ioctl requests")
Signed-off-by: Vladyslav Tarasiuk <vladyslavt@mellanox.com>
Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ethtool/ioctl.c

index 3852a58..10d929a 100644 (file)
@@ -196,7 +196,7 @@ static netdev_features_t ethtool_get_feature_mask(u32 eth_cmd)
        switch (eth_cmd) {
        case ETHTOOL_GTXCSUM:
        case ETHTOOL_STXCSUM:
-               return NETIF_F_CSUM_MASK | NETIF_F_FCOE_CRC_BIT |
+               return NETIF_F_CSUM_MASK | NETIF_F_FCOE_CRC |
                       NETIF_F_SCTP_CRC;
        case ETHTOOL_GRXCSUM:
        case ETHTOOL_SRXCSUM: