net: remove NETIF_F_NO_CSUM feature bit
Only distinct use is checking if NETIF_F_NOCACHE_COPY should be enabled by default. The check heuristics is altered a bit here, so it hits other people than before. The default shouldn't be trusted for performance-critical cases anyway. For all other uses NETIF_F_NO_CSUM is equivalent to NETIF_F_HW_CSUM. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a861a8b233
commit
34324dc2bf
@ -5362,12 +5362,6 @@ static netdev_features_t netdev_fix_features(struct net_device *dev,
|
||||
features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
|
||||
}
|
||||
|
||||
if ((features & NETIF_F_NO_CSUM) &&
|
||||
(features & (NETIF_F_HW_CSUM|NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
|
||||
netdev_warn(dev, "mixed no checksumming and other settings.\n");
|
||||
features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM|NETIF_F_HW_CSUM);
|
||||
}
|
||||
|
||||
/* Fix illegal SG+CSUM combinations. */
|
||||
if ((features & NETIF_F_SG) &&
|
||||
!(features & NETIF_F_ALL_CSUM)) {
|
||||
@ -5624,11 +5618,12 @@ int register_netdevice(struct net_device *dev)
|
||||
dev->wanted_features = dev->features & dev->hw_features;
|
||||
|
||||
/* Turn on no cache copy if HW is doing checksum */
|
||||
dev->hw_features |= NETIF_F_NOCACHE_COPY;
|
||||
if ((dev->features & NETIF_F_ALL_CSUM) &&
|
||||
!(dev->features & NETIF_F_NO_CSUM)) {
|
||||
dev->wanted_features |= NETIF_F_NOCACHE_COPY;
|
||||
dev->features |= NETIF_F_NOCACHE_COPY;
|
||||
if (!(dev->flags & IFF_LOOPBACK)) {
|
||||
dev->hw_features |= NETIF_F_NOCACHE_COPY;
|
||||
if (dev->features & NETIF_F_ALL_CSUM) {
|
||||
dev->wanted_features |= NETIF_F_NOCACHE_COPY;
|
||||
dev->features |= NETIF_F_NOCACHE_COPY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Make NETIF_F_HIGHDMA inheritable to VLAN devices.
|
||||
@ -6374,10 +6369,6 @@ netdev_features_t netdev_increment_features(netdev_features_t all,
|
||||
all |= one & (NETIF_F_ONE_FOR_ALL|NETIF_F_ALL_CSUM) & mask;
|
||||
all &= one | ~NETIF_F_ALL_FOR_ALL;
|
||||
|
||||
/* If device needs checksumming, downgrade to it. */
|
||||
if (all & (NETIF_F_ALL_CSUM & ~NETIF_F_NO_CSUM))
|
||||
all &= ~NETIF_F_NO_CSUM;
|
||||
|
||||
/* If one device supports hw checksumming, set for all. */
|
||||
if (all & NETIF_F_GEN_CSUM)
|
||||
all &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_GEN_CSUM);
|
||||
|
Reference in New Issue
Block a user