net: Disable all TSO features when SG is disabled

The feature flags NETIF_F_TSO and NETIF_F_TSO6 independently enable
TSO for IPv4 and IPv6 respectively. However, the test in
netdev_fix_features() and its predecessor functions was never updated
to check for NETIF_F_TSO6, possibly because it was originally proposed
that TSO for IPv6 would be dependent on both feature flags.

Now that these feature flags can be changed independently from
user-space and we depend on netdev_fix_features() to fix invalid
feature combinations, it's important to disable them both if
scatter-gather is disabled. Also disable NETIF_F_TSO_ECN so
user-space sees all TSO features as disabled.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Ben Hutchings and committed by David S. Miller ea2d3688 c0212fb1

+3 -3
+3 -3
net/core/dev.c
··· 5203 5203 } 5204 5204 5205 5205 /* TSO requires that SG is present as well. */ 5206 - if ((features & NETIF_F_TSO) && !(features & NETIF_F_SG)) { 5207 - netdev_info(dev, "Dropping NETIF_F_TSO since no SG feature.\n"); 5208 - features &= ~NETIF_F_TSO; 5206 + if ((features & NETIF_F_ALL_TSO) && !(features & NETIF_F_SG)) { 5207 + netdev_info(dev, "Dropping TSO features since no SG feature.\n"); 5208 + features &= ~NETIF_F_ALL_TSO; 5209 5209 } 5210 5210 5211 5211 /* Software GSO depends on SG. */