From: Miquel Raynal <miquel.ray...@bootlin.com>

[ Upstream commit c27075772d1f1c8aaf276db9943b35adda8a8b65 ]

In a previous fix, I changed the condition on which the timeout of an
IRQ is reached from:

    if (!ret)

into:

    if (ret && !pending)

While having a non-zero return code is usual in the Linux kernel, here
ret comes from a wait_for_completion_timeout() which returns 0 when
the waiting period is too long.

Hence, the revised condition should be:

    if (!ret && !pending)

The faulty patch did not produce any error because of the !pending
condition so this change is finally purely cosmetic and does not
change the actual driver behavior.

Fixes: cafb56dd741e ("mtd: rawnand: marvell: prevent timeouts on a loaded 
machine")
Signed-off-by: Miquel Raynal <miquel.ray...@bootlin.com>
Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com>
Link: 
https://lore.kernel.org/linux-mtd/20200424164501.26719-2-miquel.ray...@bootlin.com
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/mtd/nand/raw/marvell_nand.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/raw/marvell_nand.c 
b/drivers/mtd/nand/raw/marvell_nand.c
index 3e542224dd115..a917bc242c9cc 100644
--- a/drivers/mtd/nand/raw/marvell_nand.c
+++ b/drivers/mtd/nand/raw/marvell_nand.c
@@ -637,7 +637,7 @@ static int marvell_nfc_wait_op(struct nand_chip *chip, 
unsigned int timeout_ms)
         * In case the interrupt was not served in the required time frame,
         * check if the ISR was not served or if something went actually wrong.
         */
-       if (ret && !pending) {
+       if (!ret && !pending) {
                dev_err(nfc->dev, "Timeout waiting for RB signal\n");
                return -ETIMEDOUT;
        }
-- 
2.25.1

Reply via email to