diff options
author | Jiri Pirko <jpirko@redhat.com> | 2010-03-19 04:00:23 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-03-21 18:31:34 -0700 |
commit | 32a806c194ea112cfab00f558482dd97bee5e44e (patch) | |
tree | 196f572deccc966b3e2682f293cf775b51007658 /drivers/net/bonding | |
parent | 755d0e77ac9c8d125388922dc33434ed5b2ebe80 (diff) | |
download | kernel_samsung_smdk4412-32a806c194ea112cfab00f558482dd97bee5e44e.zip kernel_samsung_smdk4412-32a806c194ea112cfab00f558482dd97bee5e44e.tar.gz kernel_samsung_smdk4412-32a806c194ea112cfab00f558482dd97bee5e44e.tar.bz2 |
bonding: flush unicast and multicast lists when changing type
After the type change, addresses in unicast and multicast lists wouldn't make
sense, not to mention possible different lenghts. So flush both lists here.
Note "dev_addr_discard" will be very soon replaced by "dev_mc_flush" (once
mc_list conversion will be done).
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index cbe9e35..c2aceaa 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1490,6 +1490,10 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) goto err_undo_flags; } + /* Flush unicast and multicast addresses */ + dev_unicast_flush(bond_dev); + dev_addr_discard(bond_dev); + if (slave_dev->type != ARPHRD_ETHER) bond_setup_by_slave(bond_dev, slave_dev); else |