Skip to content

Commit 52bc671

Browse files
Mahesh Bandewardavem330
authored andcommitted
bonding: simplify / unify event handling code for 3ad mode.
Old logic of updating state-machine is not required since ad_update_actor_keys() does it implicitly. The only loss is the notification differentiation between speed vs. duplex change. Now only one unified notification is printed. Signed-off-by: Mahesh Bandewar <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 7bb11dc commit 52bc671

File tree

3 files changed

+9
-46
lines changed

3 files changed

+9
-46
lines changed

drivers/net/bonding/bond_3ad.c

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2348,57 +2348,31 @@ static void ad_update_actor_keys(struct port *port, bool reset)
23482348
}
23492349

23502350
/**
2351-
* bond_3ad_adapter_speed_changed - handle a slave's speed change indication
2352-
* @slave: slave struct to work on
2351+
* bond_3ad_adapter_speed_duplex_changed - handle a slave's speed / duplex
2352+
* change indication
23532353
*
2354-
* Handle reselection of aggregator (if needed) for this port.
2355-
*/
2356-
void bond_3ad_adapter_speed_changed(struct slave *slave)
2357-
{
2358-
struct port *port;
2359-
2360-
port = &(SLAVE_AD_INFO(slave)->port);
2361-
2362-
/* if slave is null, the whole port is not initialized */
2363-
if (!port->slave) {
2364-
netdev_warn(slave->bond->dev, "speed changed for uninitialized port on %s\n",
2365-
slave->dev->name);
2366-
return;
2367-
}
2368-
2369-
spin_lock_bh(&slave->bond->mode_lock);
2370-
2371-
ad_update_actor_keys(port, false);
2372-
netdev_dbg(slave->bond->dev, "Port %d changed speed\n", port->actor_port_number);
2373-
2374-
spin_unlock_bh(&slave->bond->mode_lock);
2375-
}
2376-
2377-
/**
2378-
* bond_3ad_adapter_duplex_changed - handle a slave's duplex change indication
23792354
* @slave: slave struct to work on
23802355
*
23812356
* Handle reselection of aggregator (if needed) for this port.
23822357
*/
2383-
void bond_3ad_adapter_duplex_changed(struct slave *slave)
2358+
void bond_3ad_adapter_speed_duplex_changed(struct slave *slave)
23842359
{
23852360
struct port *port;
23862361

23872362
port = &(SLAVE_AD_INFO(slave)->port);
23882363

23892364
/* if slave is null, the whole port is not initialized */
23902365
if (!port->slave) {
2391-
netdev_warn(slave->bond->dev, "duplex changed for uninitialized port on %s\n",
2366+
netdev_warn(slave->bond->dev,
2367+
"speed/duplex changed for uninitialized port %s\n",
23922368
slave->dev->name);
23932369
return;
23942370
}
23952371

23962372
spin_lock_bh(&slave->bond->mode_lock);
2397-
23982373
ad_update_actor_keys(port, false);
2399-
netdev_dbg(slave->bond->dev, "Port %d slave %s changed duplex\n",
2374+
netdev_dbg(slave->bond->dev, "Port %d slave %s changed speed/duplex\n",
24002375
port->actor_port_number, slave->dev->name);
2401-
24022376
spin_unlock_bh(&slave->bond->mode_lock);
24032377
}
24042378

drivers/net/bonding/bond_main.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2943,8 +2943,6 @@ static int bond_slave_netdev_event(unsigned long event,
29432943
struct slave *slave = bond_slave_get_rtnl(slave_dev), *primary;
29442944
struct bonding *bond;
29452945
struct net_device *bond_dev;
2946-
u32 old_speed;
2947-
u8 old_duplex;
29482946

29492947
/* A netdev event can be generated while enslaving a device
29502948
* before netdev_rx_handler_register is called in which case
@@ -2965,17 +2963,9 @@ static int bond_slave_netdev_event(unsigned long event,
29652963
break;
29662964
case NETDEV_UP:
29672965
case NETDEV_CHANGE:
2968-
old_speed = slave->speed;
2969-
old_duplex = slave->duplex;
2970-
29712966
bond_update_speed_duplex(slave);
2972-
2973-
if (BOND_MODE(bond) == BOND_MODE_8023AD) {
2974-
if (old_speed != slave->speed)
2975-
bond_3ad_adapter_speed_changed(slave);
2976-
if (old_duplex != slave->duplex)
2977-
bond_3ad_adapter_duplex_changed(slave);
2978-
}
2967+
if (BOND_MODE(bond) == BOND_MODE_8023AD)
2968+
bond_3ad_adapter_speed_duplex_changed(slave);
29792969
/* Fallthrough */
29802970
case NETDEV_DOWN:
29812971
/* Refresh slave-array if applicable!

include/net/bond_3ad.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,7 @@ void bond_3ad_bind_slave(struct slave *slave);
297297
void bond_3ad_unbind_slave(struct slave *slave);
298298
void bond_3ad_state_machine_handler(struct work_struct *);
299299
void bond_3ad_initiate_agg_selection(struct bonding *bond, int timeout);
300-
void bond_3ad_adapter_speed_changed(struct slave *slave);
301-
void bond_3ad_adapter_duplex_changed(struct slave *slave);
300+
void bond_3ad_adapter_speed_duplex_changed(struct slave *slave);
302301
void bond_3ad_handle_link_change(struct slave *slave, char link);
303302
int bond_3ad_get_active_agg_info(struct bonding *bond, struct ad_info *ad_info);
304303
int __bond_3ad_get_active_agg_info(struct bonding *bond,

0 commit comments

Comments
 (0)