]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/bridge/br_if.c
Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/vitb/linux...
[mv-sheeva.git] / net / bridge / br_if.c
index 07956ecf545e313775967da4e48570bf33243732..b1211d5342f6cac5f43926a2c6a39f1651cb6761 100644 (file)
@@ -386,13 +386,19 @@ void br_features_recompute(struct net_bridge *br)
                        checksum = 0;
 
                if (feature & NETIF_F_GSO)
-                       feature |= NETIF_F_TSO;
+                       feature |= NETIF_F_GSO_SOFTWARE;
                feature |= NETIF_F_GSO;
 
                features &= feature;
        }
 
-       br->dev->features = features | checksum | NETIF_F_LLTX;
+       if (!(checksum & NETIF_F_ALL_CSUM))
+               features &= ~NETIF_F_SG;
+       if (!(features & NETIF_F_SG))
+               features &= ~NETIF_F_GSO_MASK;
+
+       br->dev->features = features | checksum | NETIF_F_LLTX |
+                           NETIF_F_GSO_ROBUST;
 }
 
 /* called with RTNL */