diff options
author | David S. Miller <davem@davemloft.net> | 2013-09-26 16:02:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-26 16:02:19 -0400 |
commit | aae8c287e664d49df4aa315ad263c33b9a2af3e1 (patch) | |
tree | dc71bea5d018fdcc1f68af27ea8af52be02628e5 /drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | |
parent | 4ed377e36ec2f385484d12e516faf88516fad31c (diff) | |
parent | 5831d66e8097aedfa3bc35941cf265ada2352317 (diff) | |
download | talos-obmc-linux-aae8c287e664d49df4aa315ad263c33b9a2af3e1.tar.gz talos-obmc-linux-aae8c287e664d49df4aa315ad263c33b9a2af3e1.zip |
Merge branch 'bonding_neighbours'
bonding: use neighbours instead of own lists
Veaceslav Falico says:
====================
This patchset introduces all the needed infrastructure, on top of current
adjacent lists, to be able to remove bond's slave_list/slave->list. The
overhead in memory/CPU is minimal, and after the patchset bonding can rely
on its slave-related functions, given the proper locking. I've done some
netperf benchmarks on a vm, and the delta was about 0.1gbps for 35gbps as a
whole, so no speed fluctuations.
It also automatically creates lower/upper and master symlinks in dev's
sysfs directory.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index c73cabdbd4c0..85d0cda5fbfa 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -3983,6 +3983,7 @@ static int cxgb4_inet6addr_handler(struct notifier_block *this, struct net_device *event_dev; int ret = NOTIFY_DONE; struct bonding *bond = netdev_priv(ifa->idev->dev); + struct list_head *iter; struct slave *slave; struct pci_dev *first_pdev = NULL; @@ -3995,7 +3996,7 @@ static int cxgb4_inet6addr_handler(struct notifier_block *this, * in all of them only once. */ read_lock(&bond->lock); - bond_for_each_slave(bond, slave) { + bond_for_each_slave(bond, slave, iter) { if (!first_pdev) { ret = clip_add(slave->dev, ifa, event); /* If clip_add is success then only initialize |