From 5910f13e477b909af60de3f2f95c0b9d00ec97a0 Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Fri, 3 Feb 2012 11:23:57 +0200 Subject: [PATCH] --- yaml --- r: 298111 b: refs/heads/master c: bb4a09866faebe33bf842ecb864fef2ce042b01c h: refs/heads/master i: 298109: 85e434318168fbf6c841b5bb8bc812d5c4fc2cad 298107: 2a2b047932ebc08a566381891c9b70731805873a 298103: 5d7606e9cb673991043b3c17762f709fec6bf06d 298095: 50250918d6e38ef46f31bd564683aad110c7a12c 298079: 3c6eebb65630ed8af593512c8f982d1531b4b1bb 298047: 1093d32d90638cd663c58b59108346f53d681c40 297983: d5e8fd9d018f67f73074084493d68fdac49916ae v: v3 --- [refs] | 2 +- trunk/drivers/mtd/mtdoops.c | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 2f8fdb91d96b..81a1051de2fe 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 79186876441278e7276d335448a4cb47fc4c1d8e +refs/heads/master: bb4a09866faebe33bf842ecb864fef2ce042b01c diff --git a/trunk/drivers/mtd/mtdoops.c b/trunk/drivers/mtd/mtdoops.c index 3ce99e00a49e..ae36d7e1e913 100644 --- a/trunk/drivers/mtd/mtdoops.c +++ b/trunk/drivers/mtd/mtdoops.c @@ -169,7 +169,7 @@ static void mtdoops_workfunc_erase(struct work_struct *work) cxt->nextpage = 0; } - while (mtd_can_have_bb(mtd)) { + while (1) { ret = mtd_block_isbad(mtd, cxt->nextpage * record_size); if (!ret) break; @@ -199,9 +199,9 @@ static void mtdoops_workfunc_erase(struct work_struct *work) return; } - if (mtd_can_have_bb(mtd) && ret == -EIO) { + if (ret == -EIO) { ret = mtd_block_markbad(mtd, cxt->nextpage * record_size); - if (ret < 0) { + if (ret < 0 && ret != -EOPNOTSUPP) { printk(KERN_ERR "mtdoops: block_markbad failed, aborting\n"); return; } @@ -257,8 +257,7 @@ static void find_next_position(struct mtdoops_context *cxt) size_t retlen; for (page = 0; page < cxt->oops_pages; page++) { - if (mtd_can_have_bb(mtd) && - mtd_block_isbad(mtd, page * record_size)) + if (mtd_block_isbad(mtd, page * record_size)) continue; /* Assume the page is used */ mark_page_used(cxt, page);