net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK
The name NETIF_F_ALL_CSUM is a misnomer. This does not correspond to the
set of features for offloading all checksums. This is a mask of the
checksum offload related features bits. It is incorrect to set both
NETIF_F_HW_CSUM and NETIF_F_IP_CSUM or NETIF_F_IPV6 at the same time for
features of a device.
This patch:
- Changes instances of NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK (where
NETIF_F_ALL_CSUM is being used as a mask).
- Changes bonding, sfc/efx, ipvlan, macvlan, vlan, and team drivers to
use NEITF_F_HW_CSUM in features list instead of NETIF_F_ALL_CSUM.
Signed-off-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
253aab0597
commit
a188222b6e
@@ -2645,7 +2645,7 @@ static netdev_features_t harmonize_features(struct sk_buff *skb,
|
||||
|
||||
if (skb->ip_summed != CHECKSUM_NONE &&
|
||||
!can_checksum_protocol(features, type)) {
|
||||
features &= ~NETIF_F_ALL_CSUM;
|
||||
features &= ~NETIF_F_CSUM_MASK;
|
||||
} else if (illegal_highdma(skb->dev, skb)) {
|
||||
features &= ~NETIF_F_SG;
|
||||
}
|
||||
@@ -2792,7 +2792,7 @@ static struct sk_buff *validate_xmit_skb(struct sk_buff *skb, struct net_device
|
||||
else
|
||||
skb_set_transport_header(skb,
|
||||
skb_checksum_start_offset(skb));
|
||||
if (!(features & NETIF_F_ALL_CSUM) &&
|
||||
if (!(features & NETIF_F_CSUM_MASK) &&
|
||||
skb_checksum_help(skb))
|
||||
goto out_kfree_skb;
|
||||
}
|
||||
@@ -7572,15 +7572,15 @@ netdev_features_t netdev_increment_features(netdev_features_t all,
|
||||
netdev_features_t one, netdev_features_t mask)
|
||||
{
|
||||
if (mask & NETIF_F_GEN_CSUM)
|
||||
mask |= NETIF_F_ALL_CSUM;
|
||||
mask |= NETIF_F_CSUM_MASK;
|
||||
mask |= NETIF_F_VLAN_CHALLENGED;
|
||||
|
||||
all |= one & (NETIF_F_ONE_FOR_ALL|NETIF_F_ALL_CSUM) & mask;
|
||||
all |= one & (NETIF_F_ONE_FOR_ALL | NETIF_F_CSUM_MASK) & mask;
|
||||
all &= one | ~NETIF_F_ALL_FOR_ALL;
|
||||
|
||||
/* If one device supports hw checksumming, set for all. */
|
||||
if (all & NETIF_F_GEN_CSUM)
|
||||
all &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_GEN_CSUM);
|
||||
all &= ~(NETIF_F_CSUM_MASK & ~NETIF_F_GEN_CSUM);
|
||||
|
||||
return all;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user