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.goodb...@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

Reply via email to