net: enable GRO by default for vlan devices
authorBrandon Philips <bphilips@suse.de>
Wed, 15 Sep 2010 09:24:24 +0000 (09:24 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Sep 2010 05:32:29 +0000 (22:32 -0700)
Currently vlan devices don't have GRO by default as none of the Ethernet
drivers add NETIF_F_GRO to their vlan_features.

As GRO is a software feature add GRO to dev->vlan_features in
register_netdevice() and let vlan_dev_init() take care that it gets
enabled only when dev->features has NETIF_F_GRO too.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/dev.c

index 5bdce97b81756c76a126d4be37e6850a2cdad8c9..09b3742c4c89fee868e5167f11dd7614bcad9e3f 100644 (file)
@@ -5057,6 +5057,11 @@ int register_netdevice(struct net_device *dev)
        if (dev->features & NETIF_F_SG)
                dev->features |= NETIF_F_GSO;
 
+       /* Enable GRO for vlans by default if dev->features has GRO also.
+        * vlan_dev_init() will do the dev->features check.
+        */
+       dev->vlan_features |= NETIF_F_GRO;
+
        ret = call_netdevice_notifiers(NETDEV_POST_INIT, dev);
        ret = notifier_to_errno(ret);
        if (ret)