[PATCH 3/3] net: fm: Correct test for timeout

Andrew Goodbody andrew.goodbody at linaro.org
Mon Aug 4 18:03:59 CEST 2025


In memac_wait_until_free and memac_wait_until_done the use of
post-decrement on the test in the while loop for a timeout means that
timeout will be equal to -1 on exit in that case. Adjust the test for
this expected value.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
 drivers/net/fm/memac_phy.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/fm/memac_phy.c b/drivers/net/fm/memac_phy.c
index 26425d94ae5..1ad3c053593 100644
--- a/drivers/net/fm/memac_phy.c
+++ b/drivers/net/fm/memac_phy.c
@@ -46,7 +46,7 @@ static int memac_wait_until_free(struct memac_mdio_controller *regs)
 	while ((memac_in_32(&regs->mdio_stat) & MDIO_STAT_BSY) && timeout--)
 		;
 
-	if (!timeout) {
+	if (timeout == -1) {
 		printf("timeout waiting for MDIO bus to be free\n");
 		return -ETIMEDOUT;
 	}
@@ -64,7 +64,7 @@ static int memac_wait_until_done(struct memac_mdio_controller *regs)
 	while ((memac_in_32(&regs->mdio_stat) & MDIO_STAT_BSY) && timeout--)
 		;
 
-	if (!timeout) {
+	if (timeout == -1) {
 		printf("timeout waiting for MDIO operation to complete\n");
 		return -ETIMEDOUT;
 	}

-- 
2.39.5



More information about the U-Boot mailing list