]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mtd: rawnand: brcmnand: fix status read of brcmnand_waitfunc
authordavid regan <dregan@broadcom.com>
Tue, 26 Nov 2024 02:39:16 +0000 (18:39 -0800)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 24 Dec 2024 12:12:09 +0000 (13:12 +0100)
This change fixes an issue where an error return value may be mistakenly
used as NAND status.

Fixes: f504551b7f15 ("mtd: rawnand: Propagate error and simplify ternary operators for brcmstb_nand_wait_for_completion()")
Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/brcmnand/brcmnand.c

index 9c253a511e45a59a4f4cd0e6ae19fd4815c74549..fea5b6119956359b9b7071ee10971de2c1b33a45 100644 (file)
@@ -2342,6 +2342,11 @@ static int brcmnand_write(struct mtd_info *mtd, struct nand_chip *chip,
                brcmnand_send_cmd(host, CMD_PROGRAM_PAGE);
                status = brcmnand_waitfunc(chip);
 
+               if (status < 0) {
+                       ret = status;
+                       goto out;
+               }
+
                if (status & NAND_STATUS_FAIL) {
                        dev_info(ctrl->dev, "program failed at %llx\n",
                                (unsigned long long)addr);