Commit 57459185 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

team: use vlan_vids_[addr/del]_by_dev

So far when vlan id was added to team device befor port was added, this
vid was not added to port's vlan filter. Also after removal, vid stayed
in port device's vlan filter. Benefit of new vlan functions to handle
this work.
Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 348a1443
...@@ -588,6 +588,13 @@ static int team_port_add(struct team *team, struct net_device *port_dev) ...@@ -588,6 +588,13 @@ static int team_port_add(struct team *team, struct net_device *port_dev)
goto err_dev_open; goto err_dev_open;
} }
err = vlan_vids_add_by_dev(port_dev, dev);
if (err) {
netdev_err(dev, "Failed to add vlan ids to device %s\n",
portname);
goto err_vids_add;
}
err = netdev_set_master(port_dev, dev); err = netdev_set_master(port_dev, dev);
if (err) { if (err) {
netdev_err(dev, "Device %s failed to set master\n", portname); netdev_err(dev, "Device %s failed to set master\n", portname);
...@@ -615,6 +622,9 @@ static int team_port_add(struct team *team, struct net_device *port_dev) ...@@ -615,6 +622,9 @@ static int team_port_add(struct team *team, struct net_device *port_dev)
netdev_set_master(port_dev, NULL); netdev_set_master(port_dev, NULL);
err_set_master: err_set_master:
vlan_vids_del_by_dev(port_dev, dev);
err_vids_add:
dev_close(port_dev); dev_close(port_dev);
err_dev_open: err_dev_open:
...@@ -648,6 +658,7 @@ static int team_port_del(struct team *team, struct net_device *port_dev) ...@@ -648,6 +658,7 @@ static int team_port_del(struct team *team, struct net_device *port_dev)
team_adjust_ops(team); team_adjust_ops(team);
netdev_rx_handler_unregister(port_dev); netdev_rx_handler_unregister(port_dev);
netdev_set_master(port_dev, NULL); netdev_set_master(port_dev, NULL);
vlan_vids_del_by_dev(port_dev, dev);
dev_close(port_dev); dev_close(port_dev);
team_port_leave(team, port); team_port_leave(team, port);
team_port_set_orig_mac(port); team_port_set_orig_mac(port);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment