Commit c5256c51 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

net: propagate NETIF_F_HIGHDMA to vlans

Automatically allows vlans to get NETIF_F_HIGHDMA if underlying device
supports it.

On 32bit arches (and more precisely if CONFIG_HIGHMEM is enabled), it
can help to reduce cost of illegal_highdma() and __skb_linearize()
calls.

Tested on tg3 , bnx2, bonding, this worked very well.

This is a generalization of a patch provided by Yi Zou & Jeff Kirsher.
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bba50b99
...@@ -5058,10 +5058,11 @@ int register_netdevice(struct net_device *dev) ...@@ -5058,10 +5058,11 @@ int register_netdevice(struct net_device *dev)
if (dev->features & NETIF_F_SG) if (dev->features & NETIF_F_SG)
dev->features |= NETIF_F_GSO; dev->features |= NETIF_F_GSO;
/* Enable GRO for vlans by default if dev->features has GRO also. /* Enable GRO and NETIF_F_HIGHDMA for vlans by default,
* vlan_dev_init() will do the dev->features check. * vlan_dev_init() will do the dev->features check, so these features
* are enabled only if supported by underlying device.
*/ */
dev->vlan_features |= NETIF_F_GRO; dev->vlan_features |= (NETIF_F_GRO | NETIF_F_HIGHDMA);
ret = call_netdevice_notifiers(NETDEV_POST_INIT, dev); ret = call_netdevice_notifiers(NETDEV_POST_INIT, dev);
ret = notifier_to_errno(ret); ret = notifier_to_errno(ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment