Skip to content

Commit

Permalink
bonding: make ad_agg_selection_logic() use bond_for_each_slave()
Browse files Browse the repository at this point in the history
Convert all instances of

for (agg = __get_first_agg(); agg; agg = __get_next_port)

to the standard bond_for_each_slave(). Also, remove the useless checks
before calling bond_3ad_set_carrier() - if we have something NULL - it
would fire long ago, in __get_first/next_port(), per example.

CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Veaceslav Falico authored and David S. Miller committed Sep 28, 2013
1 parent 19177e7 commit bef1fcc
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions drivers/net/bonding/bond_3ad.c
Original file line number Diff line number Diff line change
Expand Up @@ -1484,19 +1484,23 @@ static int agg_device_up(const struct aggregator *agg)
static void ad_agg_selection_logic(struct aggregator *agg)
{
struct aggregator *best, *active, *origin;
struct bonding *bond = agg->slave->bond;
struct list_head *iter;
struct slave *slave;
struct port *port;

origin = agg;
active = __get_active_agg(agg);
best = (active && agg_device_up(active)) ? active : NULL;

do {
bond_for_each_slave(bond, slave, iter) {
agg = &(SLAVE_AD_INFO(slave).aggregator);

agg->is_active = 0;

if (agg->num_of_ports && agg_device_up(agg))
best = ad_agg_selection_test(best, agg);

} while ((agg = __get_next_agg(agg)));
}

if (best &&
__get_agg_selection_mode(best->lag_ports) == BOND_AD_STABLE) {
Expand Down Expand Up @@ -1534,8 +1538,8 @@ static void ad_agg_selection_logic(struct aggregator *agg)
best->lag_ports, best->slave,
best->slave ? best->slave->dev->name : "NULL");

for (agg = __get_first_agg(best->lag_ports); agg;
agg = __get_next_agg(agg)) {
bond_for_each_slave(bond, slave, iter) {
agg = &(SLAVE_AD_INFO(slave).aggregator);

pr_debug("Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n",
agg->aggregator_identifier, agg->num_of_ports,
Expand Down Expand Up @@ -1583,13 +1587,7 @@ static void ad_agg_selection_logic(struct aggregator *agg)
}
}

if (origin->slave) {
struct bonding *bond;

bond = bond_get_bond_by_slave(origin->slave);
if (bond)
bond_3ad_set_carrier(bond);
}
bond_3ad_set_carrier(bond);
}

/**
Expand Down

0 comments on commit bef1fcc

Please sign in to comment.