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(-)
diff --git a/net/core/dev.c b/net/core/dev.c index abc6fb7..487204d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3442,21 +3442,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
@@ -3466,7 +3461,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)) {