mtd: Update fail_addr when erase fails due to bad blocks
authorFarhan Ali <farhan.ali@broadcom.com>
Wed, 24 Feb 2021 23:25:53 +0000 (15:25 -0800)
committerTom Rini <trini@konsulko.com>
Mon, 12 Apr 2021 21:17:11 +0000 (17:17 -0400)
For all other erase failures, the fail_addr is updated with the
failing address. Only in the case of erase failure due to bad block
detection, the fail_addr is not updated. This change simply updates
the fail_addr for this specific scenario so that it is consistent with
the rest of the code.

Signed-off-by: Farhan Ali <farhan.ali@broadcom.com>
drivers/mtd/nand/raw/nand_base.c

index 6557fad..3679ee7 100644 (file)
@@ -3559,6 +3559,8 @@ int nand_erase_nand(struct mtd_info *mtd, struct erase_info *instr,
                        pr_warn("%s: attempt to erase a bad block at page 0x%08x\n",
                                    __func__, page);
                        instr->state = MTD_ERASE_FAILED;
+                       instr->fail_addr =
+                               ((loff_t)page << chip->page_shift);
                        goto erase_exit;
                }