Commit 68501df9 authored by Navid Emamdoost's avatar Navid Emamdoost Committed by David S. Miller

net: dsa: sja1105: Prevent leaking memory

In sja1105_static_config_upload, in two cases memory is leaked: when
static_config_buf_prepare_for_upload fails and when sja1105_inhibit_tx
fails. In both cases config_buf should be released.

Fixes: 8aa9ebcc ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch")
Fixes: 1a4c6940 ("net: dsa: sja1105: Prevent PHY jabbering during switch reset")
Signed-off-by: default avatarNavid Emamdoost <navid.emamdoost@gmail.com>
Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b6f2494d
...@@ -409,7 +409,8 @@ int sja1105_static_config_upload(struct sja1105_private *priv) ...@@ -409,7 +409,8 @@ int sja1105_static_config_upload(struct sja1105_private *priv)
rc = static_config_buf_prepare_for_upload(priv, config_buf, buf_len); rc = static_config_buf_prepare_for_upload(priv, config_buf, buf_len);
if (rc < 0) { if (rc < 0) {
dev_err(dev, "Invalid config, cannot upload\n"); dev_err(dev, "Invalid config, cannot upload\n");
return -EINVAL; rc = -EINVAL;
goto out;
} }
/* Prevent PHY jabbering during switch reset by inhibiting /* Prevent PHY jabbering during switch reset by inhibiting
* Tx on all ports and waiting for current packet to drain. * Tx on all ports and waiting for current packet to drain.
...@@ -418,7 +419,8 @@ int sja1105_static_config_upload(struct sja1105_private *priv) ...@@ -418,7 +419,8 @@ int sja1105_static_config_upload(struct sja1105_private *priv)
rc = sja1105_inhibit_tx(priv, port_bitmap, true); rc = sja1105_inhibit_tx(priv, port_bitmap, true);
if (rc < 0) { if (rc < 0) {
dev_err(dev, "Failed to inhibit Tx on ports\n"); dev_err(dev, "Failed to inhibit Tx on ports\n");
return -ENXIO; rc = -ENXIO;
goto out;
} }
/* Wait for an eventual egress packet to finish transmission /* Wait for an eventual egress packet to finish transmission
* (reach IFG). It is guaranteed that a second one will not * (reach IFG). It is guaranteed that a second one will not
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment