Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / net / team / team.c
index 621c1bddeee93211ba8ece3632f34168775d2de3..7c43261975bd1d57e93a4b35382e42c92891cfb1 100644 (file)
@@ -1504,8 +1504,8 @@ static void team_set_rx_mode(struct net_device *dev)
 
        rcu_read_lock();
        list_for_each_entry_rcu(port, &team->port_list, list) {
-               dev_uc_sync(port->dev, dev);
-               dev_mc_sync(port->dev, dev);
+               dev_uc_sync_multiple(port->dev, dev);
+               dev_mc_sync_multiple(port->dev, dev);
        }
        rcu_read_unlock();
 }
@@ -1598,7 +1598,7 @@ team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
        return stats;
 }
 
-static int team_vlan_rx_add_vid(struct net_device *dev, uint16_t vid)
+static int team_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
 {
        struct team *team = netdev_priv(dev);
        struct team_port *port;
@@ -1610,7 +1610,7 @@ static int team_vlan_rx_add_vid(struct net_device *dev, uint16_t vid)
         */
        mutex_lock(&team->lock);
        list_for_each_entry(port, &team->port_list, list) {
-               err = vlan_vid_add(port->dev, vid);
+               err = vlan_vid_add(port->dev, proto, vid);
                if (err)
                        goto unwind;
        }
@@ -1620,20 +1620,20 @@ static int team_vlan_rx_add_vid(struct net_device *dev, uint16_t vid)
 
 unwind:
        list_for_each_entry_continue_reverse(port, &team->port_list, list)
-               vlan_vid_del(port->dev, vid);
+               vlan_vid_del(port->dev, proto, vid);
        mutex_unlock(&team->lock);
 
        return err;
 }
 
-static int team_vlan_rx_kill_vid(struct net_device *dev, uint16_t vid)
+static int team_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)
 {
        struct team *team = netdev_priv(dev);
        struct team_port *port;
 
        rcu_read_lock();
        list_for_each_entry_rcu(port, &team->port_list, list)
-               vlan_vid_del(port->dev, vid);
+               vlan_vid_del(port->dev, proto, vid);
        rcu_read_unlock();
 
        return 0;
@@ -1841,9 +1841,9 @@ static void team_setup(struct net_device *dev)
        dev->features |= NETIF_F_LLTX;
        dev->features |= NETIF_F_GRO;
        dev->hw_features = TEAM_VLAN_FEATURES |
-                          NETIF_F_HW_VLAN_TX |
-                          NETIF_F_HW_VLAN_RX |
-                          NETIF_F_HW_VLAN_FILTER;
+                          NETIF_F_HW_VLAN_CTAG_TX |
+                          NETIF_F_HW_VLAN_CTAG_RX |
+                          NETIF_F_HW_VLAN_CTAG_FILTER;
 
        dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM);
        dev->features |= dev->hw_features;