For the origin type for netdev_features_t would be changed to be unsigned long * from u64, so changes the prototype of br_features_recompute for adaption.
Signed-off-by: Jian Shen shenjian15@huawei.com --- net/bridge/br_device.c | 2 +- net/bridge/br_if.c | 17 +++++++---------- net/bridge/br_private.h | 3 +-- 3 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 622559aff2dd..fc508b9cbaa9 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -292,7 +292,7 @@ static void br_fix_features(struct net_device *dev, netdev_features_t *features) { struct net_bridge *br = netdev_priv(dev);
- *features = br_features_recompute(br, *features); + br_features_recompute(br, features); }
#ifdef CONFIG_NET_POLL_CONTROLLER diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 4a02f8bb278a..b2afbea2133e 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -532,25 +532,22 @@ static void br_set_gso_limits(struct net_bridge *br) /* * Recomputes features using slave's features */ -netdev_features_t br_features_recompute(struct net_bridge *br, - netdev_features_t features) +void br_features_recompute(struct net_bridge *br, netdev_features_t *features) { struct net_bridge_port *p; netdev_features_t mask;
if (list_empty(&br->port_list)) - return features; + return;
- mask = features; - features &= ~NETIF_F_ONE_FOR_ALL; + mask = *features; + *features &= ~NETIF_F_ONE_FOR_ALL;
list_for_each_entry(p, &br->port_list, list) { - features = netdev_increment_features(features, - p->dev->features, mask); + *features = netdev_increment_features(*features, + p->dev->features, mask); } - features = netdev_add_tso_features(features, mask); - - return features; + *features = netdev_add_tso_features(*features, mask); }
/* called with RTNL */ diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index b4cef3a97f12..1f5cff791827 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -824,8 +824,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev, struct netlink_ext_ack *extack); int br_del_if(struct net_bridge *br, struct net_device *dev); void br_mtu_auto_adjust(struct net_bridge *br); -netdev_features_t br_features_recompute(struct net_bridge *br, - netdev_features_t features); +void br_features_recompute(struct net_bridge *br, netdev_features_t *features); void br_port_flags_change(struct net_bridge_port *port, unsigned long mask); void br_manage_promisc(struct net_bridge *br); int nbp_backup_change(struct net_bridge_port *p, struct net_device *backup_dev);