Hi Sascha, On Wed, 2021-03-17 at 10:41 +0100, Sascha Hauer wrote: > Hi Stefan, > > On Tue, Mar 16, 2021 at 01:36:26PM +0100, Stefan Riedmueller wrote: > > The blocks containing the bad block table can become bad as well. So > > make sure to skip any blocks that are marked bad when searching for the > > bad block table. > > The file is a more or less direct copy from the kernel. Does the problem > exist in the kernel as well? >From my point of view I would say yes. I have just made a small test Issue is shown in the kernel as well. It is a very raw case where two BBT blocks need to be worn out but on the other hand this fix should not have that much of an impact. I will send a similar patch to the kernel. Stefan > > Sascha > > > Signed-off-by: Stefan Riedmueller <s.riedmueller@xxxxxxxxx> > > --- > > drivers/mtd/nand/nand_bbt.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/drivers/mtd/nand/nand_bbt.c b/drivers/mtd/nand/nand_bbt.c > > index a86b5b2da38e..0b48373e6a0b 100644 > > --- a/drivers/mtd/nand/nand_bbt.c > > +++ b/drivers/mtd/nand/nand_bbt.c > > @@ -528,6 +528,7 @@ static int search_bbt(struct nand_chip *this, uint8_t > > *buf, > > { > > u64 targetsize = nanddev_target_size(&this->base); > > struct mtd_info *mtd = nand_to_mtd(this); > > + struct nand_bbt_descr *bd = this->badblock_pattern; > > int i, chips; > > int startblock, block, dir; > > int scanlen = mtd->writesize + mtd->oobsize; > > @@ -563,6 +564,9 @@ static int search_bbt(struct nand_chip *this, uint8_t > > *buf, > > int actblock = startblock + dir * block; > > loff_t offs = (loff_t)actblock << this- > > >bbt_erase_shift; > > > > + /* Check if block is marked bad */ > > + if (scan_block_fast(this, bd, offs, buf)) > > + continue; > > /* Read first page */ > > scan_read(this, buf, offs, mtd->writesize, td); > > if (!check_pattern(buf, scanlen, mtd->writesize, td)) > > { > > -- > > 2.25.1 > > > > > > _______________________________________________ > > barebox mailing list > > barebox@xxxxxxxxxxxxxxxxxxx > > http://lists.infradead.org/mailman/listinfo/barebox > > _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox