aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/dsa.h
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2021-12-06 18:57:47 +0200
committerJakub Kicinski <kuba@kernel.org>2021-12-08 14:31:14 -0800
commit3f9bb0301d50ce27421eff4b710c2bbe58111a83 (patch)
tree91271bc43b14b643d9b82b08df871ee3d2e8da22 /include/net/dsa.h
parentMerge branch 's390-net-updates-2021-12-06' (diff)
downloadlinux-dev-3f9bb0301d50ce27421eff4b710c2bbe58111a83.tar.xz
linux-dev-3f9bb0301d50ce27421eff4b710c2bbe58111a83.zip
net: dsa: make dp->bridge_num one-based
I have seen too many bugs already due to the fact that we must encode an invalid dp->bridge_num as a negative value, because the natural tendency is to check that invalid value using (!dp->bridge_num). Latest example can be seen in commit 1bec0f05062c ("net: dsa: fix bridge_num not getting cleared after ports leaving the bridge"). Convert the existing users to assume that dp->bridge_num == 0 is the encoding for invalid, and valid bridge numbers start from 1. 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 'include/net/dsa.h')
-rw-r--r--include/net/dsa.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 8ca9d50cbbc2..a23cfbaa09d6 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -257,7 +257,7 @@ struct dsa_port {
bool learning;
u8 stp_state;
struct net_device *bridge_dev;
- int bridge_num;
+ unsigned int bridge_num;
struct devlink_port devlink_port;
bool devlink_port_setup;
struct phylink *pl;
@@ -754,11 +754,11 @@ struct dsa_switch_ops {
/* Called right after .port_bridge_join() */
int (*port_bridge_tx_fwd_offload)(struct dsa_switch *ds, int port,
struct net_device *bridge,
- int bridge_num);
+ unsigned int bridge_num);
/* Called right before .port_bridge_leave() */
void (*port_bridge_tx_fwd_unoffload)(struct dsa_switch *ds, int port,
struct net_device *bridge,
- int bridge_num);
+ unsigned int bridge_num);
void (*port_stp_state_set)(struct dsa_switch *ds, int port,
u8 state);
void (*port_fast_age)(struct dsa_switch *ds, int port);