From 20c0e8f4cdda477ed35d09599ebe66fbb77a64d3 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Fri, 11 May 2012 13:30:33 -0700 Subject: [PATCH] --- yaml --- r: 332617 b: refs/heads/master c: 9cb93fbb5e84a2749e4ad6fec5091d149323a3d4 h: refs/heads/master i: 332615: edda374e3e682064949ee62e0177595219c1b9ac v: v3 --- [refs] | 2 +- trunk/drivers/mtd/mtdoops.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 07627bb5036e..1f68fd062530 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d2d48480d16ab349ae5d4732b4d79ff48b4b4171 +refs/heads/master: 9cb93fbb5e84a2749e4ad6fec5091d149323a3d4 diff --git a/trunk/drivers/mtd/mtdoops.c b/trunk/drivers/mtd/mtdoops.c index ae36d7e1e913..6ba9507b7c84 100644 --- a/trunk/drivers/mtd/mtdoops.c +++ b/trunk/drivers/mtd/mtdoops.c @@ -169,14 +169,7 @@ static void mtdoops_workfunc_erase(struct work_struct *work) cxt->nextpage = 0; } - while (1) { - ret = mtd_block_isbad(mtd, cxt->nextpage * record_size); - if (!ret) - break; - if (ret < 0) { - printk(KERN_ERR "mtdoops: block_isbad failed, aborting\n"); - return; - } + while ((ret = mtd_block_isbad(mtd, cxt->nextpage * record_size)) > 0) { badblock: printk(KERN_WARNING "mtdoops: bad block at %08lx\n", cxt->nextpage * record_size); @@ -190,6 +183,11 @@ static void mtdoops_workfunc_erase(struct work_struct *work) } } + if (ret < 0) { + printk(KERN_ERR "mtdoops: mtd_block_isbad failed, aborting\n"); + return; + } + for (j = 0, ret = -1; (j < 3) && (ret < 0); j++) ret = mtdoops_erase_block(cxt, cxt->nextpage * record_size);