Commit ce20fdd6 authored by Pawel Dembicki's avatar Pawel Dembicki Committed by Jakub Kicinski
Browse files

net: dsa: Define max num of bridges in tag8021q implementation



Max number of bridges in tag8021q implementation is strictly limited
by VBID size: 3 bits. But zero is reserved and only 7 values can be used.

This patch adds define which describe maximum possible value.

Suggested-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarPawel Dembicki <paweldembicki@gmail.com>
Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Link: https://patch.msgid.link/20240713211620.1125910-10-paweldembicki@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e3386ec4
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -3167,8 +3167,7 @@ static int sja1105_setup(struct dsa_switch *ds)
	ds->vlan_filtering_is_global = true;
	ds->untag_bridge_pvid = true;
	ds->fdb_isolation = true;
	/* tag_8021q has 3 bits for the VBID, and the value 0 is reserved */
	ds->max_num_bridges = 7;
	ds->max_num_bridges = DSA_TAG_8021Q_MAX_NUM_BRIDGES;

	/* Advertise the 8 egress queues */
	ds->num_tx_queues = SJA1105_NUM_TC;
+5 −0
Original line number Diff line number Diff line
@@ -8,6 +8,11 @@
#include <net/dsa.h>
#include <linux/types.h>

/* VBID is limited to three bits only and zero is reserved.
 * Only 7 bridges can be enumerated.
 */
#define DSA_TAG_8021Q_MAX_NUM_BRIDGES	7

int dsa_tag_8021q_register(struct dsa_switch *ds, __be16 proto);

void dsa_tag_8021q_unregister(struct dsa_switch *ds);