bonding: cleanup: remove braces from single block statements

checkpatch.pl cleanup : Remove braces from single statement
blocks.

Signed-off-by: Bandan Das <bandan.das@stratus.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Bandan Das 2010-10-16 20:19:59 +00:00 committed by David S. Miller
parent 128ea6c3ee
commit 7bfc475323

View File

@ -129,9 +129,8 @@ static void ad_marker_response_received(struct bond_marker *marker, struct port
*/ */
static inline struct bonding *__get_bond_by_port(struct port *port) static inline struct bonding *__get_bond_by_port(struct port *port)
{ {
if (port->slave == NULL) { if (port->slave == NULL)
return NULL; return NULL;
}
return bond_get_bond_by_slave(port->slave); return bond_get_bond_by_slave(port->slave);
} }
@ -144,9 +143,8 @@ static inline struct bonding *__get_bond_by_port(struct port *port)
*/ */
static inline struct port *__get_first_port(struct bonding *bond) static inline struct port *__get_first_port(struct bonding *bond)
{ {
if (bond->slave_cnt == 0) { if (bond->slave_cnt == 0)
return NULL; return NULL;
}
return &(SLAVE_AD_INFO(bond->first_slave).port); return &(SLAVE_AD_INFO(bond->first_slave).port);
} }
@ -164,9 +162,8 @@ static inline struct port *__get_next_port(struct port *port)
struct slave *slave = port->slave; struct slave *slave = port->slave;
// If there's no bond for this port, or this is the last slave // If there's no bond for this port, or this is the last slave
if ((bond == NULL) || (slave->next == bond->first_slave)) { if ((bond == NULL) || (slave->next == bond->first_slave))
return NULL; return NULL;
}
return &(SLAVE_AD_INFO(slave->next).port); return &(SLAVE_AD_INFO(slave->next).port);
} }
@ -183,9 +180,8 @@ static inline struct aggregator *__get_first_agg(struct port *port)
struct bonding *bond = __get_bond_by_port(port); struct bonding *bond = __get_bond_by_port(port);
// If there's no bond for this port, or bond has no slaves // If there's no bond for this port, or bond has no slaves
if ((bond == NULL) || (bond->slave_cnt == 0)) { if ((bond == NULL) || (bond->slave_cnt == 0))
return NULL; return NULL;
}
return &(SLAVE_AD_INFO(bond->first_slave).aggregator); return &(SLAVE_AD_INFO(bond->first_slave).aggregator);
} }
@ -203,9 +199,8 @@ static inline struct aggregator *__get_next_agg(struct aggregator *aggregator)
struct bonding *bond = bond_get_bond_by_slave(slave); struct bonding *bond = bond_get_bond_by_slave(slave);
// If there's no bond for this aggregator, or this is the last slave // If there's no bond for this aggregator, or this is the last slave
if ((bond == NULL) || (slave->next == bond->first_slave)) { if ((bond == NULL) || (slave->next == bond->first_slave))
return NULL; return NULL;
}
return &(SLAVE_AD_INFO(slave->next).aggregator); return &(SLAVE_AD_INFO(slave->next).aggregator);
} }
@ -240,9 +235,8 @@ static inline void __enable_port(struct port *port)
{ {
struct slave *slave = port->slave; struct slave *slave = port->slave;
if ((slave->link == BOND_LINK_UP) && IS_UP(slave->dev)) { if ((slave->link == BOND_LINK_UP) && IS_UP(slave->dev))
bond_set_slave_active_flags(slave); bond_set_slave_active_flags(slave);
}
} }
/** /**
@ -265,9 +259,8 @@ static inline u32 __get_agg_selection_mode(struct port *port)
{ {
struct bonding *bond = __get_bond_by_port(port); struct bonding *bond = __get_bond_by_port(port);
if (bond == NULL) { if (bond == NULL)
return BOND_AD_STABLE; return BOND_AD_STABLE;
}
return BOND_AD_INFO(bond).agg_select_mode; return BOND_AD_INFO(bond).agg_select_mode;
} }
@ -281,9 +274,8 @@ static inline int __check_agg_selection_timer(struct port *port)
{ {
struct bonding *bond = __get_bond_by_port(port); struct bonding *bond = __get_bond_by_port(port);
if (bond == NULL) { if (bond == NULL)
return 0; return 0;
}
return BOND_AD_INFO(bond).agg_select_timer ? 1 : 0; return BOND_AD_INFO(bond).agg_select_timer ? 1 : 0;
} }
@ -328,9 +320,9 @@ static u16 __get_link_speed(struct port *port)
* link down, it sets the speed to 0. * link down, it sets the speed to 0.
* This is done in spite of the fact that the e100 driver reports 0 to be * This is done in spite of the fact that the e100 driver reports 0 to be
* compatible with MVT in the future.*/ * compatible with MVT in the future.*/
if (slave->link != BOND_LINK_UP) { if (slave->link != BOND_LINK_UP)
speed = 0; speed = 0;
} else { else {
switch (slave->speed) { switch (slave->speed) {
case SPEED_10: case SPEED_10:
speed = AD_LINK_SPEED_BITMASK_10MBPS; speed = AD_LINK_SPEED_BITMASK_10MBPS;
@ -375,9 +367,9 @@ static u8 __get_duplex(struct port *port)
// handling a special case: when the configuration starts with // handling a special case: when the configuration starts with
// link down, it sets the duplex to 0. // link down, it sets the duplex to 0.
if (slave->link != BOND_LINK_UP) { if (slave->link != BOND_LINK_UP)
retval = 0x0; retval = 0x0;
} else { else {
switch (slave->duplex) { switch (slave->duplex) {
case DUPLEX_FULL: case DUPLEX_FULL:
retval = 0x1; retval = 0x1;
@ -423,11 +415,10 @@ static u16 __ad_timer_to_ticks(u16 timer_type, u16 par)
switch (timer_type) { switch (timer_type) {
case AD_CURRENT_WHILE_TIMER: // for rx machine usage case AD_CURRENT_WHILE_TIMER: // for rx machine usage
if (par) { // for short or long timeout if (par)
retval = (AD_SHORT_TIMEOUT_TIME*ad_ticks_per_sec); // short timeout retval = (AD_SHORT_TIMEOUT_TIME*ad_ticks_per_sec); // short timeout
} else { else
retval = (AD_LONG_TIMEOUT_TIME*ad_ticks_per_sec); // long timeout retval = (AD_LONG_TIMEOUT_TIME*ad_ticks_per_sec); // long timeout
}
break; break;
case AD_ACTOR_CHURN_TIMER: // for local churn machine case AD_ACTOR_CHURN_TIMER: // for local churn machine
retval = (AD_CHURN_DETECTION_TIME*ad_ticks_per_sec); retval = (AD_CHURN_DETECTION_TIME*ad_ticks_per_sec);
@ -519,11 +510,11 @@ static void __record_pdu(struct lacpdu *lacpdu, struct port *port)
port->actor_oper_port_state &= ~AD_STATE_DEFAULTED; port->actor_oper_port_state &= ~AD_STATE_DEFAULTED;
// set the partner sync. to on if the partner is sync. and the port is matched // set the partner sync. to on if the partner is sync. and the port is matched
if ((port->sm_vars & AD_PORT_MATCHED) && (lacpdu->actor_state & AD_STATE_SYNCHRONIZATION)) { if ((port->sm_vars & AD_PORT_MATCHED)
&& (lacpdu->actor_state & AD_STATE_SYNCHRONIZATION))
partner->port_state |= AD_STATE_SYNCHRONIZATION; partner->port_state |= AD_STATE_SYNCHRONIZATION;
} else { else
partner->port_state &= ~AD_STATE_SYNCHRONIZATION; partner->port_state &= ~AD_STATE_SYNCHRONIZATION;
}
} }
} }
@ -710,11 +701,10 @@ static void __set_agg_ports_ready(struct aggregator *aggregator, int val)
for (port = aggregator->lag_ports; port; for (port = aggregator->lag_ports; port;
port = port->next_port_in_aggregator) { port = port->next_port_in_aggregator) {
if (val) { if (val)
port->sm_vars |= AD_PORT_READY; port->sm_vars |= AD_PORT_READY;
} else { else
port->sm_vars &= ~AD_PORT_READY; port->sm_vars &= ~AD_PORT_READY;
}
} }
} }
@ -838,9 +828,8 @@ static int ad_lacpdu_send(struct port *port)
int length = sizeof(struct lacpdu_header); int length = sizeof(struct lacpdu_header);
skb = dev_alloc_skb(length); skb = dev_alloc_skb(length);
if (!skb) { if (!skb)
return -ENOMEM; return -ENOMEM;
}
skb->dev = slave->dev; skb->dev = slave->dev;
skb_reset_mac_header(skb); skb_reset_mac_header(skb);
@ -879,9 +868,8 @@ static int ad_marker_send(struct port *port, struct bond_marker *marker)
int length = sizeof(struct bond_marker_header); int length = sizeof(struct bond_marker_header);
skb = dev_alloc_skb(length + 16); skb = dev_alloc_skb(length + 16);
if (!skb) { if (!skb)
return -ENOMEM; return -ENOMEM;
}
skb_reserve(skb, 16); skb_reserve(skb, 16);
@ -922,9 +910,10 @@ static void ad_mux_machine(struct port *port)
} else { } else {
switch (port->sm_mux_state) { switch (port->sm_mux_state) {
case AD_MUX_DETACHED: case AD_MUX_DETACHED:
if ((port->sm_vars & AD_PORT_SELECTED) || (port->sm_vars & AD_PORT_STANDBY)) { // if SELECTED or STANDBY if ((port->sm_vars & AD_PORT_SELECTED)
|| (port->sm_vars & AD_PORT_STANDBY))
/* if SELECTED or STANDBY */
port->sm_mux_state = AD_MUX_WAITING; // next state port->sm_mux_state = AD_MUX_WAITING; // next state
}
break; break;
case AD_MUX_WAITING: case AD_MUX_WAITING:
// if SELECTED == FALSE return to DETACH state // if SELECTED == FALSE return to DETACH state
@ -938,18 +927,18 @@ static void ad_mux_machine(struct port *port)
} }
// check if the wait_while_timer expired // check if the wait_while_timer expired
if (port->sm_mux_timer_counter && !(--port->sm_mux_timer_counter)) { if (port->sm_mux_timer_counter
&& !(--port->sm_mux_timer_counter))
port->sm_vars |= AD_PORT_READY_N; port->sm_vars |= AD_PORT_READY_N;
}
// in order to withhold the selection logic to check all ports READY_N value // in order to withhold the selection logic to check all ports READY_N value
// every callback cycle to update ready variable, we check READY_N and update READY here // every callback cycle to update ready variable, we check READY_N and update READY here
__set_agg_ports_ready(port->aggregator, __agg_ports_are_ready(port->aggregator)); __set_agg_ports_ready(port->aggregator, __agg_ports_are_ready(port->aggregator));
// if the wait_while_timer expired, and the port is in READY state, move to ATTACHED state // if the wait_while_timer expired, and the port is in READY state, move to ATTACHED state
if ((port->sm_vars & AD_PORT_READY) && !port->sm_mux_timer_counter) { if ((port->sm_vars & AD_PORT_READY)
&& !port->sm_mux_timer_counter)
port->sm_mux_state = AD_MUX_ATTACHED; // next state port->sm_mux_state = AD_MUX_ATTACHED; // next state
}
break; break;
case AD_MUX_ATTACHED: case AD_MUX_ATTACHED:
// check also if agg_select_timer expired(so the edable port will take place only after this timer) // check also if agg_select_timer expired(so the edable port will take place only after this timer)
@ -1044,13 +1033,14 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
// check if state machine should change state // check if state machine should change state
// first, check if port was reinitialized // first, check if port was reinitialized
if (port->sm_vars & AD_PORT_BEGIN) { if (port->sm_vars & AD_PORT_BEGIN)
port->sm_rx_state = AD_RX_INITIALIZE; // next state /* next state */
} port->sm_rx_state = AD_RX_INITIALIZE;
// check if port is not enabled // check if port is not enabled
else if (!(port->sm_vars & AD_PORT_BEGIN) && !port->is_enabled && !(port->sm_vars & AD_PORT_MOVED)) { else if (!(port->sm_vars & AD_PORT_BEGIN)
port->sm_rx_state = AD_RX_PORT_DISABLED; // next state && !port->is_enabled && !(port->sm_vars & AD_PORT_MOVED))
} /* next state */
port->sm_rx_state = AD_RX_PORT_DISABLED;
// check if new lacpdu arrived // check if new lacpdu arrived
else if (lacpdu && ((port->sm_rx_state == AD_RX_EXPIRED) || (port->sm_rx_state == AD_RX_DEFAULTED) || (port->sm_rx_state == AD_RX_CURRENT))) { else if (lacpdu && ((port->sm_rx_state == AD_RX_EXPIRED) || (port->sm_rx_state == AD_RX_DEFAULTED) || (port->sm_rx_state == AD_RX_CURRENT))) {
port->sm_rx_timer_counter = 0; // zero timer port->sm_rx_timer_counter = 0; // zero timer
@ -1072,13 +1062,16 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
// if no lacpdu arrived and no timer is on // if no lacpdu arrived and no timer is on
switch (port->sm_rx_state) { switch (port->sm_rx_state) {
case AD_RX_PORT_DISABLED: case AD_RX_PORT_DISABLED:
if (port->sm_vars & AD_PORT_MOVED) { if (port->sm_vars & AD_PORT_MOVED)
port->sm_rx_state = AD_RX_INITIALIZE; // next state port->sm_rx_state = AD_RX_INITIALIZE; // next state
} else if (port->is_enabled && (port->sm_vars & AD_PORT_LACP_ENABLED)) { else if (port->is_enabled
&& (port->sm_vars
& AD_PORT_LACP_ENABLED))
port->sm_rx_state = AD_RX_EXPIRED; // next state port->sm_rx_state = AD_RX_EXPIRED; // next state
} else if (port->is_enabled && ((port->sm_vars & AD_PORT_LACP_ENABLED) == 0)) { else if (port->is_enabled
&& ((port->sm_vars
& AD_PORT_LACP_ENABLED) == 0))
port->sm_rx_state = AD_RX_LACP_DISABLED; // next state port->sm_rx_state = AD_RX_LACP_DISABLED; // next state
}
break; break;
default: //to silence the compiler default: //to silence the compiler
break; break;
@ -1094,11 +1087,10 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
port->sm_rx_state); port->sm_rx_state);
switch (port->sm_rx_state) { switch (port->sm_rx_state) {
case AD_RX_INITIALIZE: case AD_RX_INITIALIZE:
if (!(port->actor_oper_port_key & AD_DUPLEX_KEY_BITS)) { if (!(port->actor_oper_port_key & AD_DUPLEX_KEY_BITS))
port->sm_vars &= ~AD_PORT_LACP_ENABLED; port->sm_vars &= ~AD_PORT_LACP_ENABLED;
} else { else
port->sm_vars |= AD_PORT_LACP_ENABLED; port->sm_vars |= AD_PORT_LACP_ENABLED;
}
port->sm_vars &= ~AD_PORT_SELECTED; port->sm_vars &= ~AD_PORT_SELECTED;
__record_default(port); __record_default(port);
port->actor_oper_port_state &= ~AD_STATE_EXPIRED; port->actor_oper_port_state &= ~AD_STATE_EXPIRED;
@ -1152,9 +1144,10 @@ static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port)
// verify that if the aggregator is enabled, the port is enabled too. // verify that if the aggregator is enabled, the port is enabled too.
//(because if the link goes down for a short time, the 802.3ad will not //(because if the link goes down for a short time, the 802.3ad will not
// catch it, and the port will continue to be disabled) // catch it, and the port will continue to be disabled)
if (port->aggregator && port->aggregator->is_active && !__port_is_enabled(port)) { if (port->aggregator
&& port->aggregator->is_active
&& !__port_is_enabled(port))
__enable_port(port); __enable_port(port);
}
break; break;
default: //to silence the compiler default: //to silence the compiler
break; break;
@ -1220,9 +1213,9 @@ static void ad_periodic_machine(struct port *port)
// If not expired, check if there is some new timeout parameter from the partner state // If not expired, check if there is some new timeout parameter from the partner state
switch (port->sm_periodic_state) { switch (port->sm_periodic_state) {
case AD_FAST_PERIODIC: case AD_FAST_PERIODIC:
if (!(port->partner_oper.port_state & AD_STATE_LACP_TIMEOUT)) { if (!(port->partner_oper.port_state
& AD_STATE_LACP_TIMEOUT))
port->sm_periodic_state = AD_SLOW_PERIODIC; // next state port->sm_periodic_state = AD_SLOW_PERIODIC; // next state
}
break; break;
case AD_SLOW_PERIODIC: case AD_SLOW_PERIODIC:
if ((port->partner_oper.port_state & AD_STATE_LACP_TIMEOUT)) { if ((port->partner_oper.port_state & AD_STATE_LACP_TIMEOUT)) {
@ -1241,11 +1234,11 @@ static void ad_periodic_machine(struct port *port)
port->sm_periodic_state = AD_FAST_PERIODIC; // next state port->sm_periodic_state = AD_FAST_PERIODIC; // next state
break; break;
case AD_PERIODIC_TX: case AD_PERIODIC_TX:
if (!(port->partner_oper.port_state & AD_STATE_LACP_TIMEOUT)) { if (!(port->partner_oper.port_state
& AD_STATE_LACP_TIMEOUT))
port->sm_periodic_state = AD_SLOW_PERIODIC; // next state port->sm_periodic_state = AD_SLOW_PERIODIC; // next state
} else { else
port->sm_periodic_state = AD_FAST_PERIODIC; // next state port->sm_periodic_state = AD_FAST_PERIODIC; // next state
}
break; break;
default: //to silence the compiler default: //to silence the compiler
break; break;
@ -1291,9 +1284,8 @@ static void ad_port_selection_logic(struct port *port)
int found = 0; int found = 0;
// if the port is already Selected, do nothing // if the port is already Selected, do nothing
if (port->sm_vars & AD_PORT_SELECTED) { if (port->sm_vars & AD_PORT_SELECTED)
return; return;
}
// if the port is connected to other aggregator, detach it // if the port is connected to other aggregator, detach it
if (port->aggregator) { if (port->aggregator) {
@ -1321,9 +1313,8 @@ static void ad_port_selection_logic(struct port *port)
port->actor_port_number, port->actor_port_number,
temp_aggregator->aggregator_identifier); temp_aggregator->aggregator_identifier);
// if the aggregator is empty, clear its parameters, and set it ready to be attached // if the aggregator is empty, clear its parameters, and set it ready to be attached
if (!temp_aggregator->lag_ports) { if (!temp_aggregator->lag_ports)
ad_clear_agg(temp_aggregator); ad_clear_agg(temp_aggregator);
}
break; break;
} }
} }
@ -1341,9 +1332,8 @@ static void ad_port_selection_logic(struct port *port)
// keep a free aggregator for later use(if needed) // keep a free aggregator for later use(if needed)
if (!aggregator->lag_ports) { if (!aggregator->lag_ports) {
if (!free_aggregator) { if (!free_aggregator)
free_aggregator = aggregator; free_aggregator = aggregator;
}
continue; continue;
} }
// check if current aggregator suits us // check if current aggregator suits us
@ -1384,11 +1374,11 @@ static void ad_port_selection_logic(struct port *port)
// update the new aggregator's parameters // update the new aggregator's parameters
// if port was responsed from the end-user // if port was responsed from the end-user
if (port->actor_oper_port_key & AD_DUPLEX_KEY_BITS) {// if port is full duplex if (port->actor_oper_port_key & AD_DUPLEX_KEY_BITS)
/* if port is full duplex */
port->aggregator->is_individual = false; port->aggregator->is_individual = false;
} else { else
port->aggregator->is_individual = true; port->aggregator->is_individual = true;
}
port->aggregator->actor_admin_aggregator_key = port->actor_admin_port_key; port->aggregator->actor_admin_aggregator_key = port->actor_admin_port_key;
port->aggregator->actor_oper_aggregator_key = port->actor_oper_port_key; port->aggregator->actor_oper_aggregator_key = port->actor_oper_port_key;
@ -1716,9 +1706,8 @@ static void ad_initialize_port(struct port *port, int lacp_fast)
port->actor_admin_port_state = AD_STATE_AGGREGATION | AD_STATE_LACP_ACTIVITY; port->actor_admin_port_state = AD_STATE_AGGREGATION | AD_STATE_LACP_ACTIVITY;
port->actor_oper_port_state = AD_STATE_AGGREGATION | AD_STATE_LACP_ACTIVITY; port->actor_oper_port_state = AD_STATE_AGGREGATION | AD_STATE_LACP_ACTIVITY;
if (lacp_fast) { if (lacp_fast)
port->actor_oper_port_state |= AD_STATE_LACP_TIMEOUT; port->actor_oper_port_state |= AD_STATE_LACP_TIMEOUT;
}
memcpy(&port->partner_admin, &tmpl, sizeof(tmpl)); memcpy(&port->partner_admin, &tmpl, sizeof(tmpl));
memcpy(&port->partner_oper, &tmpl, sizeof(tmpl)); memcpy(&port->partner_oper, &tmpl, sizeof(tmpl));
@ -1947,9 +1936,8 @@ int bond_3ad_bind_slave(struct slave *slave)
port->actor_admin_port_key |= (__get_link_speed(port) << 1); port->actor_admin_port_key |= (__get_link_speed(port) << 1);
port->actor_oper_port_key = port->actor_admin_port_key; port->actor_oper_port_key = port->actor_admin_port_key;
// if the port is not full duplex, then the port should be not lacp Enabled // if the port is not full duplex, then the port should be not lacp Enabled
if (!(port->actor_oper_port_key & AD_DUPLEX_KEY_BITS)) { if (!(port->actor_oper_port_key & AD_DUPLEX_KEY_BITS))
port->sm_vars &= ~AD_PORT_LACP_ENABLED; port->sm_vars &= ~AD_PORT_LACP_ENABLED;
}
// actor system is the bond's system // actor system is the bond's system
port->actor_system = BOND_AD_INFO(bond).system.sys_mac_addr; port->actor_system = BOND_AD_INFO(bond).system.sys_mac_addr;
// tx timer(to verify that no more than MAX_TX_IN_SECOND lacpdu's are sent in one second) // tx timer(to verify that no more than MAX_TX_IN_SECOND lacpdu's are sent in one second)
@ -2021,9 +2009,10 @@ void bond_3ad_unbind_slave(struct slave *slave)
new_aggregator = __get_first_agg(port); new_aggregator = __get_first_agg(port);
for (; new_aggregator; new_aggregator = __get_next_agg(new_aggregator)) { for (; new_aggregator; new_aggregator = __get_next_agg(new_aggregator)) {
// if the new aggregator is empty, or it is connected to our port only // if the new aggregator is empty, or it is connected to our port only
if (!new_aggregator->lag_ports || ((new_aggregator->lag_ports == port) && !new_aggregator->lag_ports->next_port_in_aggregator)) { if (!new_aggregator->lag_ports
|| ((new_aggregator->lag_ports == port)
&& !new_aggregator->lag_ports->next_port_in_aggregator))
break; break;
}
} }
// if new aggregator found, copy the aggregator's parameters // if new aggregator found, copy the aggregator's parameters
// and connect the related lag_ports to the new aggregator // and connect the related lag_ports to the new aggregator
@ -2061,9 +2050,8 @@ void bond_3ad_unbind_slave(struct slave *slave)
// clear the aggregator // clear the aggregator
ad_clear_agg(aggregator); ad_clear_agg(aggregator);
if (select_new_active_agg) { if (select_new_active_agg)
ad_agg_selection_logic(__get_first_agg(port)); ad_agg_selection_logic(__get_first_agg(port));
}
} else { } else {
pr_warning("%s: Warning: unbinding aggregator, and could not find a new aggregator for its ports\n", pr_warning("%s: Warning: unbinding aggregator, and could not find a new aggregator for its ports\n",
slave->dev->master->name); slave->dev->master->name);
@ -2091,11 +2079,10 @@ void bond_3ad_unbind_slave(struct slave *slave)
prev_port = temp_port, prev_port = temp_port,
temp_port = temp_port->next_port_in_aggregator) { temp_port = temp_port->next_port_in_aggregator) {
if (temp_port == port) { // the aggregator found - detach the port from this aggregator if (temp_port == port) { // the aggregator found - detach the port from this aggregator
if (prev_port) { if (prev_port)
prev_port->next_port_in_aggregator = temp_port->next_port_in_aggregator; prev_port->next_port_in_aggregator = temp_port->next_port_in_aggregator;
} else { else
temp_aggregator->lag_ports = temp_port->next_port_in_aggregator; temp_aggregator->lag_ports = temp_port->next_port_in_aggregator;
}
temp_aggregator->num_of_ports--; temp_aggregator->num_of_ports--;
if (temp_aggregator->num_of_ports == 0) { if (temp_aggregator->num_of_ports == 0) {
select_new_active_agg = temp_aggregator->is_active; select_new_active_agg = temp_aggregator->is_active;
@ -2137,14 +2124,12 @@ void bond_3ad_state_machine_handler(struct work_struct *work)
read_lock(&bond->lock); read_lock(&bond->lock);
if (bond->kill_timers) { if (bond->kill_timers)
goto out; goto out;
}
//check if there are any slaves //check if there are any slaves
if (bond->slave_cnt == 0) { if (bond->slave_cnt == 0)
goto re_arm; goto re_arm;
}
// check if agg_select_timer timer after initialize is timed out // check if agg_select_timer timer after initialize is timed out
if (BOND_AD_INFO(bond).agg_select_timer && !(--BOND_AD_INFO(bond).agg_select_timer)) { if (BOND_AD_INFO(bond).agg_select_timer && !(--BOND_AD_INFO(bond).agg_select_timer)) {
@ -2177,9 +2162,8 @@ void bond_3ad_state_machine_handler(struct work_struct *work)
ad_tx_machine(port); ad_tx_machine(port);
// turn off the BEGIN bit, since we already handled it // turn off the BEGIN bit, since we already handled it
if (port->sm_vars & AD_PORT_BEGIN) { if (port->sm_vars & AD_PORT_BEGIN)
port->sm_vars &= ~AD_PORT_BEGIN; port->sm_vars &= ~AD_PORT_BEGIN;
}
} }
re_arm: re_arm:
@ -2417,9 +2401,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
*/ */
read_lock(&bond->lock); read_lock(&bond->lock);
if (!BOND_IS_OK(bond)) { if (!BOND_IS_OK(bond))
goto out; goto out;
}
if (bond_3ad_get_active_agg_info(bond, &ad_info)) { if (bond_3ad_get_active_agg_info(bond, &ad_info)) {
pr_debug("%s: Error: bond_3ad_get_active_agg_info failed\n", pr_debug("%s: Error: bond_3ad_get_active_agg_info failed\n",
@ -2443,9 +2426,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
if (agg && (agg->aggregator_identifier == agg_id)) { if (agg && (agg->aggregator_identifier == agg_id)) {
slave_agg_no--; slave_agg_no--;
if (slave_agg_no < 0) { if (slave_agg_no < 0)
break; break;
}
} }
} }
@ -2461,9 +2443,8 @@ int bond_3ad_xmit_xor(struct sk_buff *skb, struct net_device *dev)
int slave_agg_id = 0; int slave_agg_id = 0;
struct aggregator *agg = SLAVE_AD_INFO(slave).port.aggregator; struct aggregator *agg = SLAVE_AD_INFO(slave).port.aggregator;
if (agg) { if (agg)
slave_agg_id = agg->aggregator_identifier; slave_agg_id = agg->aggregator_identifier;
}
if (SLAVE_IS_OK(slave) && agg && (slave_agg_id == agg_id)) { if (SLAVE_IS_OK(slave) && agg && (slave_agg_id == agg_id)) {
res = bond_dev_queue_xmit(bond, skb, slave->dev); res = bond_dev_queue_xmit(bond, skb, slave->dev);