For the origin type for netdev_features_t would be changed to be unsigned long * from u64, so changes the prototype of harmonize_features for adaption.
Signed-off-by: Jian Shen shenjian15@huawei.com --- net/core/dev.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/net/core/dev.c b/net/core/dev.c index 487204d..9dd7421 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3455,22 +3455,19 @@ static void net_mpls_features(struct sk_buff *skb, netdev_features_t *features, } #endif
-static netdev_features_t harmonize_features(struct sk_buff *skb, - netdev_features_t features) +static void harmonize_features(struct sk_buff *skb, netdev_features_t *features) { __be16 type;
type = skb_network_protocol(skb, NULL); - net_mpls_features(skb, &features, type); + net_mpls_features(skb, features, type);
if (skb->ip_summed != CHECKSUM_NONE && - !can_checksum_protocol(features, type)) { - features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK); + !can_checksum_protocol(*features, type)) { + *features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK); } if (illegal_highdma(skb->dev, skb)) - features &= ~NETIF_F_SG; - - return features; + *features &= ~NETIF_F_SG; }
netdev_features_t passthru_features_check(struct sk_buff *skb, @@ -3552,7 +3549,8 @@ netdev_features_t netif_skb_features(struct sk_buff *skb) else features &= dflt_features_check(skb, dev, features);
- return harmonize_features(skb, features); + harmonize_features(skb, &features); + return features; } EXPORT_SYMBOL(netif_skb_features);