return err;
 }
 
+static netdev_features_t team_fix_features(struct net_device *dev,
+                                          netdev_features_t features)
+{
+       struct team_port *port;
+       struct team *team = netdev_priv(dev);
+       netdev_features_t mask;
+
+       mask = features;
+       features &= ~NETIF_F_ONE_FOR_ALL;
+       features |= NETIF_F_ALL_FOR_ALL;
+
+       rcu_read_lock();
+       list_for_each_entry_rcu(port, &team->port_list, list) {
+               features = netdev_increment_features(features,
+                                                    port->dev->features,
+                                                    mask);
+       }
+       rcu_read_unlock();
+       return features;
+}
+
 static const struct net_device_ops team_netdev_ops = {
        .ndo_init               = team_init,
        .ndo_uninit             = team_uninit,
        .ndo_vlan_rx_kill_vid   = team_vlan_rx_kill_vid,
        .ndo_add_slave          = team_add_slave,
        .ndo_del_slave          = team_del_slave,
+       .ndo_fix_features       = team_fix_features,
 };