@@ -3444,21 +3444,16 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
* instead of standard features for the netdev.
*/
#if IS_ENABLED(CONFIG_NET_MPLS_GSO)
-static netdev_features_t net_mpls_features(struct sk_buff *skb,
- netdev_features_t features,
- __be16 type)
+static void net_mpls_features(struct sk_buff *skb, netdev_features_t *features,
+ __be16 type)
{
if (eth_p_mpls(type))
- features &= skb->dev->mpls_features;
-
- return features;
+ *features &= skb->dev->mpls_features;
}
#else
-static netdev_features_t net_mpls_features(struct sk_buff *skb,
- netdev_features_t features,
- __be16 type)
+static void net_mpls_features(struct sk_buff *skb, netdev_features_t *features,
+ __be16 type)
{
- return features;
}
#endif
@@ -3468,7 +3463,7 @@ static netdev_features_t harmonize_features(struct sk_buff *skb,
__be16 type;
type = skb_network_protocol(skb, NULL);
- features = net_mpls_features(skb, features, type);
+ net_mpls_features(skb, &features, type);
if (skb->ip_summed != CHECKSUM_NONE &&
!can_checksum_protocol(features, type)) {
For the origin type for netdev_features_t would be changed to be unsigned long * from u64, so changes the prototype of net_mpls_features for adaption. Signed-off-by: Jian Shen <shenjian15@huawei.com> --- net/core/dev.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-)