Message ID | 20210216114119.2856299-2-olteanv@gmail.com |
---|---|
State | New |
Headers | show |
Series | Fix buggy brport flags offload for SJA1105 DSA | expand |
On 2/16/2021 3:41 AM, Vladimir Oltean wrote: > From: Vladimir Oltean <vladimir.oltean@nxp.com> > > Due to a mistake, the driver always sets the address learning flag to > the previously stored value, and not to the currently configured one. > The bug is visible only in standalone ports mode, because when the port > is bridged, the issue is masked by .port_stp_state_set which overwrites > the address learning state to the proper value. > > Fixes: 4d9423549501 ("net: dsa: sja1105: offload bridge port flags to device") > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c index 1dad94540cc9..3d3e2794655d 100644 --- a/drivers/net/dsa/sja1105/sja1105_main.c +++ b/drivers/net/dsa/sja1105/sja1105_main.c @@ -3282,7 +3282,7 @@ static int sja1105_port_set_learning(struct sja1105_private *priv, int port, mac = priv->static_config.tables[BLK_IDX_MAC_CONFIG].entries; - mac[port].dyn_learn = !!(priv->learn_ena & BIT(port)); + mac[port].dyn_learn = enabled; rc = sja1105_dynamic_config_write(priv, BLK_IDX_MAC_CONFIG, port, &mac[port], true);