net: annotate accesses to dev->gso_max_segs
dev->gso_max_segs is written under RTNL protection, or when the device is not yet visible, but is read locklessly. Add netif_set_gso_max_segs() helper. Add the READ_ONCE()/WRITE_ONCE() pairs, and use netif_set_gso_max_segs() where we can to better document what is going on. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
4b66d2161b
commit
6d872df3e3
@@ -141,7 +141,7 @@ static int ipvlan_init(struct net_device *dev)
|
||||
dev->vlan_features |= IPVLAN_ALWAYS_ON_OFLOADS;
|
||||
dev->hw_enc_features |= dev->features;
|
||||
netif_set_gso_max_size(dev, phy_dev->gso_max_size);
|
||||
dev->gso_max_segs = phy_dev->gso_max_segs;
|
||||
netif_set_gso_max_segs(dev, phy_dev->gso_max_segs);
|
||||
dev->hard_header_len = phy_dev->hard_header_len;
|
||||
|
||||
netdev_lockdep_set_classes(dev);
|
||||
@@ -764,7 +764,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);
|
||||
ipvlan->dev->gso_max_segs = dev->gso_max_segs;
|
||||
netif_set_gso_max_segs(ipvlan->dev, dev->gso_max_segs);
|
||||
netdev_update_features(ipvlan->dev);
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user