Skip to content

Commit 23de0d7

Browse files
Mahesh Bandewarkuba-moo
authored andcommitted
bonding: pair enable_port with slave_arr_updates
When 803.2ad mode enables a participating port, it should update the slave-array. I have observed that the member links are participating and are part of the active aggregator while the traffic is egressing via only one member link (in a case where two links are participating). Via kprobes I discovered that slave-arr has only one link added while the other participating link wasn't part of the slave-arr. I couldn't see what caused that situation but the simple code-walk through provided me hints that the enable_port wasn't always associated with the slave-array update. Fixes: ee63771 ("bonding: Simplify the xmit function for modes that use xmit_hash") Signed-off-by: Mahesh Bandewar <[email protected]> Acked-by: Jay Vosburgh <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 084cbb2 commit 23de0d7

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/net/bonding/bond_3ad.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1021,8 +1021,8 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr)
10211021
if (port->aggregator &&
10221022
port->aggregator->is_active &&
10231023
!__port_is_enabled(port)) {
1024-
10251024
__enable_port(port);
1025+
*update_slave_arr = true;
10261026
}
10271027
}
10281028
break;
@@ -1779,6 +1779,7 @@ static void ad_agg_selection_logic(struct aggregator *agg,
17791779
port = port->next_port_in_aggregator) {
17801780
__enable_port(port);
17811781
}
1782+
*update_slave_arr = true;
17821783
}
17831784
}
17841785

0 commit comments

Comments
 (0)