Skip to content

Commit 4a384c1

Browse files
Mahesh Bandewargregkh
authored andcommitted
bonding: pair enable_port with slave_arr_updates
[ Upstream commit 23de0d7 ] 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 <maheshb@google.com> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com> Link: https://lore.kernel.org/r/20220207222901.1795287-1-maheshb@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 1ba45dd commit 4a384c1

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
@@ -1003,8 +1003,8 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr)
10031003
if (port->aggregator &&
10041004
port->aggregator->is_active &&
10051005
!__port_is_enabled(port)) {
1006-
10071006
__enable_port(port);
1007+
*update_slave_arr = true;
10081008
}
10091009
}
10101010
break;
@@ -1760,6 +1760,7 @@ static void ad_agg_selection_logic(struct aggregator *agg,
17601760
port = port->next_port_in_aggregator) {
17611761
__enable_port(port);
17621762
}
1763+
*update_slave_arr = true;
17631764
}
17641765
}
17651766

0 commit comments

Comments
 (0)