NETIF_F_SG
dev->features = dev->hw_features = (NETIF_F_SG | NETIF_F_FRAGLIST);
netdev->features = NETIF_F_HIGHDMA | NETIF_F_SG;
if (dev->features & NETIF_F_SG)
dev->features |= NETIF_F_SG;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM;
dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
dev->features |= NETIF_F_SG | NETIF_F_FRAGLIST;
dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
(dev->features & NETIF_F_SG) ? "en":"dis",
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
NETIF_F_SG | NETIF_F_TSO |
dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
ndev->hw_features &= ~NETIF_F_SG;
NETIF_F_SG |
netdev->hw_features = NETIF_F_SG |
netdev->hw_enc_features = NETIF_F_SG |
netdev->vlan_features |= NETIF_F_SG |
NETIF_F_SG;
NETIF_F_RXHASH | NETIF_F_SG |
NETIF_F_SG | \
NETIF_F_SG | \
NETIF_F_SG | \
netdev->hw_features = NETIF_F_SG |
netdev->hw_features = NETIF_F_SG |
netdev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_TSO |
netdev->features |= NETIF_F_SG;
netdev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_TSO |
ndev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
net_dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
NETIF_F_SG |
NETIF_F_SG |
features &= ~NETIF_F_SG;
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_SG |
dev->features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM |
features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM;
netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM |
netdev->vlan_features = NETIF_F_SG | NETIF_F_HIGHDMA |
dev->hw_features = NETIF_F_SG;
dev->hw_features &= ~NETIF_F_SG;
ndev->hw_features = NETIF_F_SG | NETIF_F_HIGHDMA;
| NETIF_F_SG | NETIF_F_RXCSUM
| NETIF_F_HW_CSUM | NETIF_F_SG
| NETIF_F_SG | NETIF_F_RXCSUM
| NETIF_F_HW_CSUM | NETIF_F_SG
netdev->hw_features = (NETIF_F_RXCSUM | NETIF_F_SG |
netdev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM |
netdev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM |
netdev->features |= NETIF_F_SG | NETIF_F_IP_CSUM |
#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
netdev->hw_features = NETIF_F_SG | TSO_FLAGS |
#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
netdev->hw_features = NETIF_F_SG | TSO_FLAGS | NETIF_F_GRO |
dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
netdev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM;
#define GMAC_OFFLOAD_FEATURES (NETIF_F_SG | NETIF_F_IP_CSUM | \
netdev->hw_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 |
netdev->vlan_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 |
netdev->features = NETIF_F_SG;
NETIF_F_GRO | NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_RX |
net_dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA;
NETIF_F_SG | NETIF_F_HIGHDMA |
ndev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM |
ndev->features = NETIF_F_HIGHDMA | NETIF_F_SG | NETIF_F_RXCSUM |
ndev->vlan_features = NETIF_F_SG | NETIF_F_HW_CSUM |
ndev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM |
ndev->features = NETIF_F_HIGHDMA | NETIF_F_SG | NETIF_F_RXCSUM |
ndev->vlan_features = NETIF_F_SG | NETIF_F_HW_CSUM |
| NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_TSO);
ndev->features |= NETIF_F_SG;
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG |
#define VLAN_FEAT (NETIF_F_SG | NETIF_F_HW_CSUM | TSO_FLAGS | \
netdev->hw_features = NETIF_F_SG | NETIF_F_RXHASH | NETIF_F_RXCSUM;
dev->hw_features |= NETIF_F_SG;
ndev->hw_features |= NETIF_F_SG;
NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
ndev->vlan_features |= NETIF_F_SG | NETIF_F_GSO | NETIF_F_GRO;
NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
NETIF_F_RXCSUM | NETIF_F_SG | NETIF_F_GSO |
netdev->hw_features = NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM |
NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN |
dft_fts = NETIF_F_SG | NETIF_F_HIGHDMA;
dev->hw_features = NETIF_F_SG | NETIF_F_TSO |
dev->features = NETIF_F_SG | NETIF_F_TSO |
dev->vlan_features = NETIF_F_SG | NETIF_F_TSO | NETIF_F_HIGHDMA |
ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG;
netdev->hw_features = NETIF_F_SG;
adapter->netdev->hw_features = NETIF_F_SG | NETIF_F_GSO | NETIF_F_GRO;
netdev->hw_features = NETIF_F_SG |
NETIF_F_SG);
netdev->features = (NETIF_F_SG |
netdev->vlan_features |= (NETIF_F_SG |
NETIF_F_SG |
NETIF_F_SG;
hw_enc_features = NETIF_F_SG |
netdev->mpls_features |= NETIF_F_SG;
hw_enc_features = NETIF_F_SG |
netdev->features = NETIF_F_SG | NETIF_F_HIGHDMA;
dflt_features = NETIF_F_SG |
dflt_features = NETIF_F_SG |
netdev->features |= NETIF_F_SG |
netdev->hw_features = NETIF_F_SG |
netdev->features |= NETIF_F_SG;
netdev->features = NETIF_F_SG |
netdev->mpls_features |= NETIF_F_SG |
netdev->hw_features = NETIF_F_SG |
netdev->mpls_features |= NETIF_F_SG |
NETIF_F_SG |
NETIF_F_SG |
dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
netdev->hw_features = NETIF_F_SG;
netdev->hw_features = NETIF_F_SG;
NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 |
NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6 |
NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6);
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
#define SKY2_VLAN_OFFLOADS (NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO)
features &= ~(NETIF_F_TSO | NETIF_F_SG | NETIF_F_CSUM_MASK);
dev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO;
NETIF_F_SG | NETIF_F_TSO | \
#define MTK_HW_FEATURES_MT7628 (NETIF_F_SG | NETIF_F_RXCSUM)
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
netdev->vlan_features |= NETIF_F_SG;
netdev->mpls_features |= NETIF_F_SG;
netdev->hw_features |= NETIF_F_SG;
netdev->hw_features |= NETIF_F_SG;
dev->features |= NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_FILTER |
NETIF_F_SG |
dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_RXCSUM;
adapter->netdev->features = NETIF_F_SG | NETIF_F_TSO |
ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
mgp->features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_TSO;
ndev->features |= NETIF_F_SG;
if (changed & NETIF_F_SG) {
if (features & NETIF_F_SG)
netdev->hw_features |= NETIF_F_SG;
netdev->hw_features |= NETIF_F_SG;
ndev->features = NETIF_F_SG;
dev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_SG |
dev->features & (NETIF_F_IP_CSUM | NETIF_F_SG) ?
dev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_HIGHDMA |
if (features & NETIF_F_SG)
NETIF_F_SG |
netdev->hw_features |= NETIF_F_SG;
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
hw_features = NETIF_F_GRO | NETIF_F_GRO_HW | NETIF_F_SG |
NETIF_F_SG | NETIF_F_TSO |
ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
netdev->features |= (NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
netdev->vlan_features |= (NETIF_F_SG | NETIF_F_IP_CSUM |
netdev->features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
netdev->vlan_features |= NETIF_F_SG | NETIF_F_HW_CSUM |
rmnet_dev->hw_features |= NETIF_F_SG;
dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_HIGHDMA;
dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
dev->hw_features |= NETIF_F_SG | NETIF_F_TSO | NETIF_F_TSO6;
dev->hw_features |= NETIF_F_SG | NETIF_F_TSO;
NETIF_F_RXCSUM | NETIF_F_SG |
dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
dev->features |= NETIF_F_SG;
ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
NETIF_F_SG | \
net_dev->vlan_features |= NETIF_F_HW_CSUM | NETIF_F_SG |
NETIF_F_HIGHDMA | NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_NTUPLE | \
net_dev->vlan_features |= (NETIF_F_HW_CSUM | NETIF_F_SG |
net_dev->features |= (efx->type->offload_features | NETIF_F_SG |
net_dev->vlan_features |= (NETIF_F_HW_CSUM | NETIF_F_SG |
net_dev->vlan_features |= (NETIF_F_HW_CSUM | NETIF_F_SG |
net_dev->features |= (efx->type->offload_features | NETIF_F_SG |
dev->features = NETIF_F_SG | NETIF_F_HIGHDMA |
ndev->hw_features = NETIF_F_SG;
ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG;
dev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXHASH;
dev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_RXCSUM;
dev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM;
NETIF_F_HW_CSUM | NETIF_F_SG;
netdev->hw_features |= NETIF_F_SG;
ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG | NETIF_F_TSO |
ndev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
NETIF_F_SG |
NETIF_F_SG |
port->ndev->hw_features = NETIF_F_SG |
port->ndev->vlan_features |= NETIF_F_SG;
ndev->hw_features = NETIF_F_SG;
ndev->hw_features = NETIF_F_SG;
ndev->features |= NETIF_F_SG;
ndev->vlan_features |= NETIF_F_SG;
dev->features |= NETIF_F_SG|NETIF_F_HW_CSUM;
netdev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
netdev->features = NETIF_F_SG | NETIF_F_IP_CSUM |
netdev->features = NETIF_F_SG |
ndev->features = NETIF_F_SG;
ndev->features = NETIF_F_SG;
dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
NETIF_F_SG | NETIF_F_RXHASH)
net->hw_features |= NETIF_F_SG;
#define IFB_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_FRAGLIST | \
netdev->hw_features = NETIF_F_SG;
(NETIF_F_SG | NETIF_F_HW_CSUM | \
(NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
dev->features = NETIF_F_SG | NETIF_F_FRAGLIST
(NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST)
(NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE | \
(NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
NETIF_F_SG |
NETIF_F_SG |
NETIF_F_SG |
dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA;
netdev_features_t feat = NETIF_F_SG | NETIF_F_GSO |
dev->features = NETIF_F_SG | NETIF_F_FRAGLIST;
if ((tap->dev->features & NETIF_F_HIGHDMA) && (tap->dev->features & NETIF_F_SG))
#define TAP_FEATURES (NETIF_F_GSO | NETIF_F_SG | NETIF_F_FRAGLIST)
dev->hw_features = NETIF_F_SG | NETIF_F_ALL_TSO | NETIF_F_GRO |
dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST |
if (!dev->can_dma_sg && (dev->net->features & NETIF_F_SG) &&
#define AQ_SUPPORT_FEATURE (NETIF_F_SG | NETIF_F_IP_CSUM |\
#define AQ_SUPPORT_HW_FEATURE (NETIF_F_SG | NETIF_F_IP_CSUM |\
#define AQ_SUPPORT_VLAN_FEATURE (NETIF_F_SG | NETIF_F_IP_CSUM |\
dev->net->features |= NETIF_F_SG | NETIF_F_IP_CSUM |
if ((dev->net->features & NETIF_F_SG) && skb_linearize(skb))
dev->net->features |= NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_SG;
features &= ~(NETIF_F_SG | NETIF_F_IPV6_CSUM | NETIF_F_TSO6);
netdev->features |= NETIF_F_RXCSUM | NETIF_F_IP_CSUM | NETIF_F_SG |
netdev->hw_features = NETIF_F_RXCSUM | NETIF_F_IP_CSUM | NETIF_F_SG |
netdev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
#define VETH_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HW_CSUM | \
dev->hw_features |= NETIF_F_HW_CSUM | NETIF_F_SG;
dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
netdev->hw_features = NETIF_F_SG | NETIF_F_RXCSUM |
netdev->hw_enc_features = NETIF_F_SG | NETIF_F_RXCSUM |
netdev->hw_enc_features |= NETIF_F_SG | NETIF_F_RXCSUM |
netdev->hw_enc_features &= ~(NETIF_F_SG | NETIF_F_RXCSUM |
dev->features |= NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA;
dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA;
dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_FRAGLIST;
NETIF_F_SG | NETIF_F_GSO |
NETIF_F_SG | NETIF_F_GRO |
hw->netdev_features = NETIF_F_HIGHDMA | NETIF_F_SG;
hw->netdev_features = NETIF_F_HIGHDMA | NETIF_F_SG;
netdev_features_t netdev_flags = NETIF_F_CSUM_MASK | NETIF_F_SG;
hw->netdev_features = NETIF_F_HIGHDMA | NETIF_F_SG;
netdev_features_t netdev_flags = NETIF_F_CSUM_MASK | NETIF_F_SG;
dev->features |= NETIF_F_SG;
dev->hw_features |= NETIF_F_SG;
features &= ~NETIF_F_SG;
dev->hw_features = NETIF_F_SG |
if (features & NETIF_F_SG &&
features &= ~NETIF_F_SG;
if (!(features & NETIF_F_SG) && dev->mtu > ETH_DATA_LEN) {
netdev->hw_features = NETIF_F_SG |
return dev->features & NETIF_F_SG;
dev->hw_features |= NETIF_F_SG;
dev->vlan_features |= NETIF_F_SG;
dev->features |= NETIF_F_SG;
features &= ~NETIF_F_SG;
card->dev->features |= NETIF_F_SG;
card->dev->features |= NETIF_F_SG;
if (netdev->features & NETIF_F_SG)
dev->features |= NETIF_F_SG | NETIF_F_IP_CSUM;
features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM |
NETIF_F_SG | NETIF_F_HIGHDMA | \
#define MASTER_UPPER_DEV_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
#define MASTER_UPPER_DEV_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
#define MASTER_UPPER_DEV_MPLS_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
(skb_shinfo(skb)->nr_frags && !(features & NETIF_F_SG)));
#define FAILOVER_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
#define FAILOVER_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
netdev_features_t features = NETIF_F_SG;
.features = NETIF_F_SG | NETIF_F_GSO_PARTIAL | NETIF_F_IP_CSUM |
.features = NETIF_F_SG | NETIF_F_FRAGLIST |
dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |
#define COMMON_FEATURES (NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA | \
if ((features & NETIF_F_ALL_TSO) && !(features & NETIF_F_SG)) {
if ((features & NETIF_F_GSO) && !(features & NETIF_F_SG)) {
dev->hw_enc_features |= NETIF_F_SG | NETIF_F_GSO_PARTIAL;
dev->mpls_features |= NETIF_F_SG;
features &= ~NETIF_F_SG;
features = NETIF_F_SG | NETIF_F_HW_CSUM;
features &= ~NETIF_F_SG;
features &= ~NETIF_F_SG;
sg = !!(features & NETIF_F_SG);
sk->sk_route_caps |= NETIF_F_SG | NETIF_F_HW_CSUM;
user->features &= ~(NETIF_F_SG | NETIF_F_FRAGLIST);
return NETIF_F_SG | NETIF_F_FRAGLIST;
dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA |
esp_features = features & ~(NETIF_F_SG | NETIF_F_CSUM_MASK |
#define GRE_FEATURES (NETIF_F_SG | \
if ((rt->dst.dev->features & NETIF_F_SG) &&
if (rt->dst.dev->features & NETIF_F_SG &&
if (rt->dst.dev->features & NETIF_F_SG &&
!(rt->dst.dev->features&NETIF_F_SG))
!(rt->dst.dev->features & NETIF_F_SG)))
if (!(rt->dst.dev->features&NETIF_F_SG) &&
#define IPIP_FEATURES (NETIF_F_SG | \
if (sk->sk_route_caps & NETIF_F_SG)
if (sk->sk_route_caps & NETIF_F_SG)
if (sk->sk_route_caps & NETIF_F_SG)
esp_features = features & ~(NETIF_F_SG | NETIF_F_CSUM_MASK |
#define GRE6_FEATURES (NETIF_F_SG | \
if ((rt->dst.dev->features & NETIF_F_SG) &&
if (rt->dst.dev->features & NETIF_F_SG &&
if (rt->dst.dev->features & NETIF_F_SG &&
!(rt->dst.dev->features&NETIF_F_SG))
!(rt->dst.dev->features & NETIF_F_SG)))
if (!(rt->dst.dev->features&NETIF_F_SG) &&
#define IPXIPX_FEATURES (NETIF_F_SG | \
#define SIT_FEATURES (NETIF_F_SG | \
NETIF_F_HW_CSUM | NETIF_F_SG | \
features &= NETIF_F_SG;
segs = __skb_gso_segment(skb, NETIF_F_SG, false);
netdev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA |
segs = skb_segment(skb, (features | NETIF_F_HW_CSUM) & ~NETIF_F_SG);
esp_features = features & ~(NETIF_F_SG | NETIF_F_CSUM_MASK);
#define XFRMI_FEATURES (NETIF_F_SG | \