aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorJiri Pirko <jpirko@redhat.com>2010-03-19 00:00:23 -0400
committerDavid S. Miller <davem@davemloft.net>2010-03-21 21:31:34 -0400
commit32a806c194ea112cfab00f558482dd97bee5e44e (patch)
tree196f572deccc966b3e2682f293cf775b51007658 /net/core
parent755d0e77ac9c8d125388922dc33434ed5b2ebe80 (diff)
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 'net/core')
-rw-r--r--net/core/dev.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index c0e260870c0a..fe2a754238a9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4457,12 +4457,13 @@ void dev_unicast_unsync(struct net_device *to, struct net_device *from)
4457} 4457}
4458EXPORT_SYMBOL(dev_unicast_unsync); 4458EXPORT_SYMBOL(dev_unicast_unsync);
4459 4459
4460static void dev_unicast_flush(struct net_device *dev) 4460void dev_unicast_flush(struct net_device *dev)
4461{ 4461{
4462 netif_addr_lock_bh(dev); 4462 netif_addr_lock_bh(dev);
4463 __hw_addr_flush(&dev->uc); 4463 __hw_addr_flush(&dev->uc);
4464 netif_addr_unlock_bh(dev); 4464 netif_addr_unlock_bh(dev);
4465} 4465}
4466EXPORT_SYMBOL(dev_unicast_flush);
4466 4467
4467static void dev_unicast_init(struct net_device *dev) 4468static void dev_unicast_init(struct net_device *dev)
4468{ 4469{
@@ -4484,7 +4485,7 @@ static void __dev_addr_discard(struct dev_addr_list **list)
4484 } 4485 }
4485} 4486}
4486 4487
4487static void dev_addr_discard(struct net_device *dev) 4488void dev_addr_discard(struct net_device *dev)
4488{ 4489{
4489 netif_addr_lock_bh(dev); 4490 netif_addr_lock_bh(dev);
4490 4491
@@ -4493,6 +4494,7 @@ static void dev_addr_discard(struct net_device *dev)
4493 4494
4494 netif_addr_unlock_bh(dev); 4495 netif_addr_unlock_bh(dev);
4495} 4496}
4497EXPORT_SYMBOL(dev_addr_discard);
4496 4498
4497/** 4499/**
4498 * dev_get_flags - get flags reported to userspace 4500 * dev_get_flags - get flags reported to userspace