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 <adu...@mirantis.com>
---
 net/core/dev.c |    4 ++++
 1 file changed, 4 insertions(+)

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;

Reply via email to