Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jiri Pirko and committed by
David S. Miller
57459185 348a1443

+11
+11
drivers/net/team/team.c
··· 588 588 goto err_dev_open; 589 589 } 590 590 591 + err = vlan_vids_add_by_dev(port_dev, dev); 592 + if (err) { 593 + netdev_err(dev, "Failed to add vlan ids to device %s\n", 594 + portname); 595 + goto err_vids_add; 596 + } 597 + 591 598 err = netdev_set_master(port_dev, dev); 592 599 if (err) { 593 600 netdev_err(dev, "Device %s failed to set master\n", portname); ··· 622 615 netdev_set_master(port_dev, NULL); 623 616 624 617 err_set_master: 618 + vlan_vids_del_by_dev(port_dev, dev); 619 + 620 + err_vids_add: 625 621 dev_close(port_dev); 626 622 627 623 err_dev_open: ··· 658 648 team_adjust_ops(team); 659 649 netdev_rx_handler_unregister(port_dev); 660 650 netdev_set_master(port_dev, NULL); 651 + vlan_vids_del_by_dev(port_dev, dev); 661 652 dev_close(port_dev); 662 653 team_port_leave(team, port); 663 654 team_port_set_orig_mac(port);