Swap pending with accepted patches, rebase remaining pending patches on top of new upstream. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
From f259e08494c47c614ce7b6d3079d1e0d3f30ae66 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Golle <daniel@makrotopia.org>
|
|
Date: Wed, 1 Apr 2026 14:34:42 +0100
|
|
Subject: [PATCH 2/4] net: dsa: add bridge member iteration macro
|
|
|
|
Drivers that offload bridges need to iterate over the ports that are
|
|
members of a given bridge, for example to rebuild per-port forwarding
|
|
bitmaps when membership changes. Currently drivers typically open-code
|
|
this by combining dsa_switch_for_each_user_port() with a
|
|
dsa_port_offloads_bridge_dev() check, or cache bridge membership
|
|
within the driver.
|
|
|
|
Add dsa_switch_for_each_bridge_member() macro to express this pattern
|
|
directly, and use it for the existing dsa_bridge_ports() inline
|
|
helper.
|
|
|
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|
Link: https://patch.msgid.link/e7136aaa26773f39e805a00fe4ecf13cd2b83fc0.1775049897.git.daniel@makrotopia.org
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
include/net/dsa.h | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
--- a/include/net/dsa.h
|
|
+++ b/include/net/dsa.h
|
|
@@ -833,15 +833,18 @@ dsa_tree_offloads_bridge_dev(struct dsa_
|
|
return false;
|
|
}
|
|
|
|
+#define dsa_switch_for_each_bridge_member(_dp, _ds, _bdev) \
|
|
+ dsa_switch_for_each_user_port(_dp, _ds) \
|
|
+ if (dsa_port_offloads_bridge_dev(_dp, _bdev))
|
|
+
|
|
static inline u32
|
|
dsa_bridge_ports(struct dsa_switch *ds, const struct net_device *bdev)
|
|
{
|
|
struct dsa_port *dp;
|
|
u32 mask = 0;
|
|
|
|
- dsa_switch_for_each_user_port(dp, ds)
|
|
- if (dsa_port_offloads_bridge_dev(dp, bdev))
|
|
- mask |= BIT(dp->index);
|
|
+ dsa_switch_for_each_bridge_member(dp, ds, bdev)
|
|
+ mask |= BIT(dp->index);
|
|
|
|
return mask;
|
|
}
|