| From c360c26e6837a7710dbbac85ae29de77bc6df7e0 Mon Sep 17 00:00:00 2001 |
| From: Miquel Raynal <miquel.raynal@bootlin.com> |
| Date: Fri, 24 Apr 2020 18:44:56 +0200 |
| Subject: [PATCH] mtd: rawnand: marvell: Fix the condition on a return code |
| |
| commit c27075772d1f1c8aaf276db9943b35adda8a8b65 upstream. |
| |
| 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.raynal@bootlin.com> |
| Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> |
| Link: https://lore.kernel.org/linux-mtd/20200424164501.26719-2-miquel.raynal@bootlin.com |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/mtd/nand/raw/marvell_nand.c b/drivers/mtd/nand/raw/marvell_nand.c |
| index fc49e13d81ec..1af568ae1c00 100644 |
| --- a/drivers/mtd/nand/raw/marvell_nand.c |
| +++ b/drivers/mtd/nand/raw/marvell_nand.c |
| @@ -707,7 +707,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.27.0 |
| |