* [PATCH net-next] net: dsa: sja1105: completely error out in sja1105_static_config_reload if something fails
@ 2021-06-18 13:48 Vladimir Oltean
2021-06-18 19:30 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 2+ messages in thread
From: Vladimir Oltean @ 2021-06-18 13:48 UTC (permalink / raw)
To: Jakub Kicinski, David S. Miller, netdev
Cc: Florian Fainelli, Andrew Lunn, Vivien Didelot, Vladimir Oltean
From: Vladimir Oltean <vladimir.oltean@nxp.com>
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>
---
drivers/net/dsa/sja1105/sja1105_main.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
index 57ccd4548911..a9777eb564c6 100644
--- a/drivers/net/dsa/sja1105/sja1105_main.c
+++ b/drivers/net/dsa/sja1105/sja1105_main.c
@@ -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,
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net-next] net: dsa: sja1105: completely error out in sja1105_static_config_reload if something fails
2021-06-18 13:48 [PATCH net-next] net: dsa: sja1105: completely error out in sja1105_static_config_reload if something fails Vladimir Oltean
@ 2021-06-18 19:30 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-06-18 19:30 UTC (permalink / raw)
To: Vladimir Oltean
Cc: kuba, davem, netdev, f.fainelli, andrew, vivien.didelot, vladimir.oltean
Hello:
This patch was applied to netdev/net-next.git (refs/heads/master):
On Fri, 18 Jun 2021 16:48:12 +0300 you wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
>
> 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.
>
> [...]
Here is the summary with links:
- [net-next] net: dsa: sja1105: completely error out in sja1105_static_config_reload if something fails
https://git.kernel.org/netdev/net-next/c/61c77533b82b
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-06-18 19:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-18 13:48 [PATCH net-next] net: dsa: sja1105: completely error out in sja1105_static_config_reload if something fails Vladimir Oltean
2021-06-18 19:30 ` patchwork-bot+netdevbpf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.