|
@@ -1350,6 +1350,16 @@ static void fm10k_dfwd_del_station(struct net_device *dev, void *priv)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static netdev_features_t fm10k_features_check(struct sk_buff *skb,
|
|
|
|
+ struct net_device *dev,
|
|
|
|
+ netdev_features_t features)
|
|
|
|
+{
|
|
|
|
+ if (!skb->encapsulation || fm10k_tx_encap_offload(skb))
|
|
|
|
+ return features;
|
|
|
|
+
|
|
|
|
+ return features & ~(NETIF_F_ALL_CSUM | NETIF_F_GSO_MASK);
|
|
|
|
+}
|
|
|
|
+
|
|
static const struct net_device_ops fm10k_netdev_ops = {
|
|
static const struct net_device_ops fm10k_netdev_ops = {
|
|
.ndo_open = fm10k_open,
|
|
.ndo_open = fm10k_open,
|
|
.ndo_stop = fm10k_close,
|
|
.ndo_stop = fm10k_close,
|
|
@@ -1372,6 +1382,7 @@ static const struct net_device_ops fm10k_netdev_ops = {
|
|
.ndo_do_ioctl = fm10k_ioctl,
|
|
.ndo_do_ioctl = fm10k_ioctl,
|
|
.ndo_dfwd_add_station = fm10k_dfwd_add_station,
|
|
.ndo_dfwd_add_station = fm10k_dfwd_add_station,
|
|
.ndo_dfwd_del_station = fm10k_dfwd_del_station,
|
|
.ndo_dfwd_del_station = fm10k_dfwd_del_station,
|
|
|
|
+ .ndo_features_check = fm10k_features_check,
|
|
};
|
|
};
|
|
|
|
|
|
#define DEFAULT_DEBUG_LEVEL_SHIFT 3
|
|
#define DEFAULT_DEBUG_LEVEL_SHIFT 3
|