Commit 6df6398f authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

net: add netif_inherit_tso_max()



To make later patches smaller create a helper for inheriting
the TSO limitations of a lower device. The TSO in the name
is not an accident, subsequent patches will replace GSO
with TSO in more names.

Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent beb21e3e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -286,8 +286,7 @@ nfp_repr_transfer_features(struct net_device *netdev, struct net_device *lower)
	if (repr->dst->u.port_info.lower_dev != lower)
		return;

	netif_set_gso_max_size(netdev, lower->gso_max_size);
	netif_set_gso_max_segs(netdev, lower->gso_max_segs);
	netif_inherit_tso_max(netdev, lower);

	netdev_update_features(netdev);
}
+2 −4
Original line number Diff line number Diff line
@@ -139,8 +139,7 @@ static int ipvlan_init(struct net_device *dev)
	dev->vlan_features = phy_dev->vlan_features & IPVLAN_FEATURES;
	dev->vlan_features |= IPVLAN_ALWAYS_ON_OFLOADS;
	dev->hw_enc_features |= dev->features;
	netif_set_gso_max_size(dev, phy_dev->gso_max_size);
	netif_set_gso_max_segs(dev, phy_dev->gso_max_segs);
	netif_inherit_tso_max(dev, phy_dev);
	dev->hard_header_len = phy_dev->hard_header_len;

	netdev_lockdep_set_classes(dev);
@@ -762,8 +761,7 @@ static int ipvlan_device_event(struct notifier_block *unused,

	case NETDEV_FEAT_CHANGE:
		list_for_each_entry(ipvlan, &port->ipvlans, pnode) {
			netif_set_gso_max_size(ipvlan->dev, dev->gso_max_size);
			netif_set_gso_max_segs(ipvlan->dev, dev->gso_max_segs);
			netif_inherit_tso_max(ipvlan->dev, dev);
			netdev_update_features(ipvlan->dev);
		}
		break;
+2 −4
Original line number Diff line number Diff line
@@ -904,8 +904,7 @@ static int macvlan_init(struct net_device *dev)
	dev->vlan_features	= lowerdev->vlan_features & MACVLAN_FEATURES;
	dev->vlan_features	|= ALWAYS_ON_OFFLOADS;
	dev->hw_enc_features    |= dev->features;
	netif_set_gso_max_size(dev, lowerdev->gso_max_size);
	netif_set_gso_max_segs(dev, lowerdev->gso_max_segs);
	netif_inherit_tso_max(dev, lowerdev);
	dev->hard_header_len	= lowerdev->hard_header_len;
	macvlan_set_lockdep_class(dev);

@@ -1763,8 +1762,7 @@ static int macvlan_device_event(struct notifier_block *unused,
		break;
	case NETDEV_FEAT_CHANGE:
		list_for_each_entry(vlan, &port->vlans, list) {
			netif_set_gso_max_size(vlan->dev, dev->gso_max_size);
			netif_set_gso_max_segs(vlan->dev, dev->gso_max_segs);
			netif_inherit_tso_max(vlan->dev, dev);
			netdev_update_features(vlan->dev);
		}
		break;
+1 −2
Original line number Diff line number Diff line
@@ -1758,8 +1758,7 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
	if (ifmp && (dev->ifindex != 0))
		peer->ifindex = ifmp->ifi_index;

	netif_set_gso_max_size(peer, dev->gso_max_size);
	netif_set_gso_max_segs(peer, dev->gso_max_segs);
	netif_inherit_tso_max(peer, dev);

	err = register_netdevice(peer);
	put_net(net);
+1 −2
Original line number Diff line number Diff line
@@ -3683,8 +3683,7 @@ static void vxlan_config_apply(struct net_device *dev,
	if (lowerdev) {
		dst->remote_ifindex = conf->remote_ifindex;

		netif_set_gso_max_size(dev, lowerdev->gso_max_size);
		netif_set_gso_max_segs(dev, lowerdev->gso_max_segs);
		netif_inherit_tso_max(dev, lowerdev);

		needed_headroom = lowerdev->hard_header_len;
		needed_headroom += lowerdev->needed_headroom;
Loading