From: Alexander Duyck Date: Mon, 2 May 2016 16:38:24 +0000 (-0700) Subject: net: Fix netdev_fix_features so that TSO_MANGLEID is only available with TSO X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=b1dc497b28ad053d1f6d5b5cb186af9564e4d7f1;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git net: Fix netdev_fix_features so that TSO_MANGLEID is only available with TSO This change makes it so that we will strip the TSO_MANGLEID bit if TSO is not present. This way we will also handle ECN correctly of TSO is not present. Signed-off-by: Alexander Duyck Signed-off-by: David S. Miller --- diff --git a/net/core/dev.c b/net/core/dev.c index 673d1f118bfb..e98ba63fe280 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -6721,6 +6721,10 @@ static netdev_features_t netdev_fix_features(struct net_device *dev, features &= ~NETIF_F_TSO6; } + /* TSO with IPv4 ID mangling requires IPv4 TSO be enabled */ + if ((features & NETIF_F_TSO_MANGLEID) && !(features & NETIF_F_TSO)) + features &= ~NETIF_F_TSO_MANGLEID; + /* TSO ECN requires that TSO is present as well. */ if ((features & NETIF_F_ALL_TSO) == NETIF_F_TSO_ECN) features &= ~NETIF_F_TSO_ECN;