[PATCH net v4 0/2] net/mlx5: Bridge, fix remaining switchdev ownership gaps on merged eswitch
Bernardo Soares <[email protected]>
| Newsgroups | org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
v4 of "net/mlx5: Bridge, don't fail switchdev events of sibling eswitch ports" (5f324c5d1b12), addressing reviewer feedback on v3: - The v3 commit message for patch 1 wrongly attributed the recursive lower-device walk fix to LAG bond enslavement order. As pointed out in review, mlx5_esw_bridge_lag_rep_get() already filters on mlx5_esw_bridge_dev_same_esw() per candidate and cannot select a sibling's rep. The actual bug is in the generic recursive walk used when attribute changes are emitted against the bridge master netdevice directly (a bridge with representors of more than one eswitch instance enslaved, no LAG involved): the walk returns as soon as any lower device yields a rep, and the underlying base case only checks same-HW, not ownership. Commit message rewritten to describe this correctly; no functional change from v3. - The v3 commit message for patch 2 claimed a "replayed/duplicate" NETDEV_CHANGEUPPER unlink as one of the reachable cases. As pointed out in review, netdevice notifiers are not replayed, so there is no such duplicate delivery. The actual (and only) reachable case is a sibling instance whose bridge offload notifier registers after a peer port was already enslaved, so it misses the link event and never tracks the port, then genuinely receives the later unlink event. Commit message rewritten accordingly; no functional change from v3. Tested Patch 1 on a ConnectX-7 NIC (MT2910) on my single NIC system. Patch 2 requires a multiple eswitch instance setup, so I wasn't able to exercise its code paths. Note: v1/v2 were sent From/Signed-off-by [email protected]; v3 and v4 are sent from my personal address ([email protected]) instead, for unrelated mail delivery reasons. Same author, same person. Bernardo Soares (2): net/mlx5: Bridge, don't fail switchdev events of sibling eswitch ports net/mlx5: Bridge, don't fail unlink of untracked/unsupported peer ports .../mellanox/mlx5/core/en/rep/bridge.c | 45 +++++++++++++++---- .../ethernet/mellanox/mlx5/core/esw/bridge.c | 15 +++++-- .../ethernet/mellanox/mlx5/core/esw/bridge.h | 2 + 3 files changed, 49 insertions(+), 13 deletions(-) -- 2.43.0