diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2021-12-06 18:57:48 +0200 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-12-08 14:31:14 -0800 |
commit | 947c8746e2c31bb469ba9ee02dc739be6a98ee38 (patch) | |
tree | d79bf7336fbc938ae82d29cb222ec871459a4ece /net/dsa/dsa2.c | |
parent | 3f9bb0301d50ce27421eff4b710c2bbe58111a83 (diff) | |
download | linux-947c8746e2c31bb469ba9ee02dc739be6a98ee38.tar.gz linux-947c8746e2c31bb469ba9ee02dc739be6a98ee38.tar.bz2 linux-947c8746e2c31bb469ba9ee02dc739be6a98ee38.zip |
net: dsa: assign a bridge number even without TX forwarding offload
The service where DSA assigns a unique bridge number for each forwarding
domain is useful even for drivers which do not implement the TX
forwarding offload feature.
For example, drivers might use the dp->bridge_num for FDB isolation.
So rename ds->num_fwd_offloading_bridges to ds->max_num_bridges, and
calculate a unique bridge_num for all drivers that set this value.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/dsa/dsa2.c')
-rw-r--r-- | net/dsa/dsa2.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 9606e56710a5..4901cdc264ee 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -152,7 +152,9 @@ unsigned int dsa_bridge_num_get(const struct net_device *bridge_dev, int max) unsigned int bridge_num = dsa_bridge_num_find(bridge_dev); if (!bridge_num) { - /* First port that offloads TX forwarding for this bridge */ + /* First port that requests FDB isolation or TX forwarding + * offload for this bridge + */ bridge_num = find_next_zero_bit(&dsa_fwd_offloading_bridges, DSA_MAX_NUM_OFFLOADING_BRIDGES, 1); |