mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
mtd: nand: mxic-ecc: Fix mxic_ecc_data_xfer_wait_for_completion() when irq is used
wait_for_completion_timeout() and readl_poll_timeout() don't handle their
return value the same way.
wait_for_completion_timeout() returns 0 on time out (and >0 in all other
cases)
readl_poll_timeout() returns 0 on success and -ETIMEDOUT upon a timeout.
In order for the error handling path to work in both cases, the logic
against wait_for_completion_timeout() needs to be inverted.
Fixes: 48e6633a9f
("mtd: nand: mxic-ecc: Add Macronix external ECC engine support")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/beddbc374557e44ceec897e68c4a5d12764ddbb9.1676459308.git.christophe.jaillet@wanadoo.fr
This commit is contained in:
parent
4ce341de6c
commit
75dce6a941
@ -429,6 +429,7 @@ static int mxic_ecc_data_xfer_wait_for_completion(struct mxic_ecc_engine *mxic)
|
||||
mxic_ecc_enable_int(mxic);
|
||||
ret = wait_for_completion_timeout(&mxic->complete,
|
||||
msecs_to_jiffies(1000));
|
||||
ret = ret ? 0 : -ETIMEDOUT;
|
||||
mxic_ecc_disable_int(mxic);
|
||||
} else {
|
||||
ret = readl_poll_timeout(mxic->regs + INTRPT_STS, val,
|
||||
|
Loading…
Reference in New Issue
Block a user