Patch "bonding: pair enable_port with slave_arr_updates" has been added to the 4.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    bonding: pair enable_port with slave_arr_updates

to the 4.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     bonding-pair-enable_port-with-slave_arr_updates.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 835d9e28a1126566e72094668b9d65d0d9a303b3
Author: Mahesh Bandewar <maheshb@xxxxxxxxxx>
Date:   Mon Feb 7 14:29:01 2022 -0800

    bonding: pair enable_port with slave_arr_updates
    
    [ Upstream commit 23de0d7b6f0e3f9a6283a882594c479949da1120 ]
    
    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: ee6377147409 ("bonding: Simplify the xmit function for modes that use xmit_hash")
    Signed-off-by: Mahesh Bandewar <maheshb@xxxxxxxxxx>
    Acked-by: Jay Vosburgh <jay.vosburgh@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220207222901.1795287-1-maheshb@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 93dfcef8afc4b..035923876c617 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1012,8 +1012,8 @@ static void ad_mux_machine(struct port *port, bool *update_slave_arr)
 				if (port->aggregator &&
 				    port->aggregator->is_active &&
 				    !__port_is_enabled(port)) {
-
 					__enable_port(port);
+					*update_slave_arr = true;
 				}
 			}
 			break;
@@ -1760,6 +1760,7 @@ static void ad_agg_selection_logic(struct aggregator *agg,
 			     port = port->next_port_in_aggregator) {
 				__enable_port(port);
 			}
+			*update_slave_arr = true;
 		}
 	}
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux