net: dsa: sja1105: completely error out in sja1105_static_config_reload if something fails
If reloading the static config fails for whatever reason, for example if sja1105_static_config_check_valid() fails, then we "goto out_unlock_ptp" but we print anyway that "Reset switch and programmed static config.", which is confusing because we didn't. We also do a bunch of other stuff like reprogram the XPCS and reload the credit-based shapers, as if a switch reset took place, which didn't. So just unlock the PTP lock and goto out, skipping all of that. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1303e7f9b6
commit
61c77533b8
@ -1886,17 +1886,23 @@ int sja1105_static_config_reload(struct sja1105_private *priv,
|
||||
mutex_lock(&priv->ptp_data.lock);
|
||||
|
||||
rc = __sja1105_ptp_gettimex(ds, &now, &ptp_sts_before);
|
||||
if (rc < 0)
|
||||
goto out_unlock_ptp;
|
||||
if (rc < 0) {
|
||||
mutex_unlock(&priv->ptp_data.lock);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Reset switch and send updated static configuration */
|
||||
rc = sja1105_static_config_upload(priv);
|
||||
if (rc < 0)
|
||||
goto out_unlock_ptp;
|
||||
if (rc < 0) {
|
||||
mutex_unlock(&priv->ptp_data.lock);
|
||||
goto out;
|
||||
}
|
||||
|
||||
rc = __sja1105_ptp_settime(ds, 0, &ptp_sts_after);
|
||||
if (rc < 0)
|
||||
goto out_unlock_ptp;
|
||||
if (rc < 0) {
|
||||
mutex_unlock(&priv->ptp_data.lock);
|
||||
goto out;
|
||||
}
|
||||
|
||||
t1 = timespec64_to_ns(&ptp_sts_before.pre_ts);
|
||||
t2 = timespec64_to_ns(&ptp_sts_before.post_ts);
|
||||
@ -1911,7 +1917,6 @@ int sja1105_static_config_reload(struct sja1105_private *priv,
|
||||
|
||||
__sja1105_ptp_adjtime(ds, now);
|
||||
|
||||
out_unlock_ptp:
|
||||
mutex_unlock(&priv->ptp_data.lock);
|
||||
|
||||
dev_info(priv->ds->dev,
|
||||
|
Loading…
x
Reference in New Issue
Block a user