aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/team
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2013-04-18 22:04:28 -0400
committerDavid S. Miller <davem@davemloft.net>2013-04-19 14:45:27 -0400
commit80d5c3689b886308247da295a228a54df49a44f6 (patch)
treece7b1e6898c3f9fea945e67fd06b125dfcc61fe7 /drivers/net/team
parentf646968f8f7c624587de729115d802372b9063dd (diff)
net: vlan: prepare for 802.1ad VLAN filtering offload
Change the rx_{add,kill}_vid callbacks to take a protocol argument in preparation of 802.1ad support. The protocol argument used so far is always htons(ETH_P_8021Q). Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/team')
-rw-r--r--drivers/net/team/team.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 9290eb23d664..7c43261975bd 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -1598,7 +1598,7 @@ team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
1598 return stats; 1598 return stats;
1599} 1599}
1600 1600
1601static int team_vlan_rx_add_vid(struct net_device *dev, uint16_t vid) 1601static int team_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
1602{ 1602{
1603 struct team *team = netdev_priv(dev); 1603 struct team *team = netdev_priv(dev);
1604 struct team_port *port; 1604 struct team_port *port;
@@ -1610,7 +1610,7 @@ static int team_vlan_rx_add_vid(struct net_device *dev, uint16_t vid)
1610 */ 1610 */
1611 mutex_lock(&team->lock); 1611 mutex_lock(&team->lock);
1612 list_for_each_entry(port, &team->port_list, list) { 1612 list_for_each_entry(port, &team->port_list, list) {
1613 err = vlan_vid_add(port->dev, vid); 1613 err = vlan_vid_add(port->dev, proto, vid);
1614 if (err) 1614 if (err)
1615 goto unwind; 1615 goto unwind;
1616 } 1616 }
@@ -1620,20 +1620,20 @@ static int team_vlan_rx_add_vid(struct net_device *dev, uint16_t vid)
1620 1620
1621unwind: 1621unwind:
1622 list_for_each_entry_continue_reverse(port, &team->port_list, list) 1622 list_for_each_entry_continue_reverse(port, &team->port_list, list)
1623 vlan_vid_del(port->dev, vid); 1623 vlan_vid_del(port->dev, proto, vid);
1624 mutex_unlock(&team->lock); 1624 mutex_unlock(&team->lock);
1625 1625
1626 return err; 1626 return err;
1627} 1627}
1628 1628
1629static int team_vlan_rx_kill_vid(struct net_device *dev, uint16_t vid) 1629static int team_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)
1630{ 1630{
1631 struct team *team = netdev_priv(dev); 1631 struct team *team = netdev_priv(dev);
1632 struct team_port *port; 1632 struct team_port *port;
1633 1633
1634 rcu_read_lock(); 1634 rcu_read_lock();
1635 list_for_each_entry_rcu(port, &team->port_list, list) 1635 list_for_each_entry_rcu(port, &team->port_list, list)
1636 vlan_vid_del(port->dev, vid); 1636 vlan_vid_del(port->dev, proto, vid);
1637 rcu_read_unlock(); 1637 rcu_read_unlock();
1638 1638
1639 return 0; 1639 return 0;