Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -5058,10 +5058,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.
	/* Enable GRO and NETIF_F_HIGHDMA for vlans by default,
	 * 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 = notifier_to_errno(ret);