imx.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net: fec: avoid lock evasion when reading pps_enable
@ 2024-05-13  1:51 Wei Fang
  2024-05-13  7:29 ` Eric Dumazet
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Wei Fang @ 2024-05-13  1:51 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, shenwei.wang, xiaoning.wang,
	richardcochran, andrew, netdev
  Cc: linux-kernel, imx

The assignment of pps_enable is protected by tmreg_lock, but the read
operation of pps_enable is not. So the Coverity tool reports a lock
evasion warning which may cause data race to occur when running in a
multithread environment. Although this issue is almost impossible to
occur, we'd better fix it, at least it seems more logically reasonable,
and it also prevents Coverity from continuing to issue warnings.

Fixes: 278d24047891 ("net: fec: ptp: Enable PPS output based on ptp clock")
Signed-off-by: Wei Fang <wei.fang@nxp.com>
---
 drivers/net/ethernet/freescale/fec_ptp.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_ptp.c b/drivers/net/ethernet/freescale/fec_ptp.c
index 181d9bfbee22..8d37274a3fb0 100644
--- a/drivers/net/ethernet/freescale/fec_ptp.c
+++ b/drivers/net/ethernet/freescale/fec_ptp.c
@@ -104,14 +104,16 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
 	struct timespec64 ts;
 	u64 ns;
 
-	if (fep->pps_enable == enable)
-		return 0;
-
 	fep->pps_channel = DEFAULT_PPS_CHANNEL;
 	fep->reload_period = PPS_OUPUT_RELOAD_PERIOD;
 
 	spin_lock_irqsave(&fep->tmreg_lock, flags);
 
+	if (fep->pps_enable == enable) {
+		spin_unlock_irqrestore(&fep->tmreg_lock, flags);
+		return 0;
+	}
+
 	if (enable) {
 		/* clear capture or output compare interrupt status if have.
 		 */
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-05-14  9:26 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-13  1:51 [PATCH net] net: fec: avoid lock evasion when reading pps_enable Wei Fang
2024-05-13  7:29 ` Eric Dumazet
2024-05-13  7:53   ` Wei Fang
2024-05-13  8:40     ` Eric Dumazet
2024-05-13 12:18       ` Wei Fang
2024-05-13  9:27 ` Hariprasad Kelam
2024-05-13 12:24   ` Wei Fang
2024-05-14  9:26     ` Hariprasad Kelam
2024-05-13 19:54 ` Simon Horman
2024-05-13 19:56   ` Simon Horman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).