mtd: rawnand: print offset instead of page number for bad blocks
authorRafał Miłecki <rafal@milecki.pl>
Sat, 26 Mar 2022 16:33:04 +0000 (17:33 +0100)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 4 Apr 2022 08:34:58 +0000 (10:34 +0200)
This makes printed info consistent with other kernel messages. After
scanning NAND BBT create_bbt() prints offset of each bad block. This
change makes is easy to verify nand_erase_nand() failure reason.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20220326163304.30806-1-zajec5@gmail.com
drivers/mtd/nand/raw/nand_base.c

index 284fff6..6b67b7d 100644 (file)
@@ -4502,11 +4502,13 @@ int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
        len = instr->len;
 
        while (len) {
+               loff_t ofs = (loff_t)page << chip->page_shift;
+
                /* Check if we have a bad block, we do not erase bad blocks! */
                if (nand_block_checkbad(chip, ((loff_t) page) <<
                                        chip->page_shift, allowbbt)) {
-                       pr_warn("%s: attempt to erase a bad block at page 0x%08x\n",
-                                   __func__, page);
+                       pr_warn("%s: attempt to erase a bad block at 0x%08llx\n",
+                                   __func__, (unsigned long long)ofs);
                        ret = -EIO;
                        goto erase_exit;
                }
@@ -4524,8 +4526,7 @@ int nand_erase_nand(struct nand_chip *chip, struct erase_info *instr,
                if (ret) {
                        pr_debug("%s: failed erase, page 0x%08x\n",
                                        __func__, page);
-                       instr->fail_addr =
-                               ((loff_t)page << chip->page_shift);
+                       instr->fail_addr = ofs;
                        goto erase_exit;
                }