[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220812130438.140434-1-dac922@gmx.de>
Date: Fri, 12 Aug 2022 15:04:38 +0200
From: Stefan Mahr <dac922@....de>
To: Russell King <linux@...linux.org.uk>, netdev@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, Stefan Mahr <dac922@....de>
Subject: [PATCH] net: sfp: reset fault retry counter on successful reinitialisation
This patch resets the fault retry counter to the default value, if the
module reinitialisation was successful. Otherwise without resetting
the counter, five (N_FAULT/N_FAULT_INIT) single TX_FAULT events will
deactivate the module persistently.
In case the reinitialisation was not successful after five retries,
the module is still being deactivated.
Signed-off-by: Stefan Mahr <dac922@....de>
---
drivers/net/phy/sfp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index 63f90fe9a4d2..a8d7a713222a 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -2263,6 +2263,9 @@ static void sfp_sm_main(struct sfp *sfp, unsigned int event)
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
dev_info(sfp->dev, "module transmit fault recovered\n");
sfp_sm_link_check_los(sfp);
+
+ /* Reset the fault retry count */
+ sfp->sm_fault_retries = N_FAULT;
}
break;
--
2.25.1
Powered by blists - more mailing lists