diff options
author | Brian Norris <computersforpeace@gmail.com> | 2012-05-11 16:30:33 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-07-06 13:17:02 -0400 |
commit | 9cb93fbb5e84a2749e4ad6fec5091d149323a3d4 (patch) | |
tree | 12f9cb3f3ee6afef065f4d4c3d6e8f7abe6ac95f /drivers/mtd/mtdoops.c | |
parent | d2d48480d16ab349ae5d4732b4d79ff48b4b4171 (diff) |
mtd: mtdoops: refactor loop
We can clean up the loop logic a bit, here. This refactoring was enabled
in part by:
Commit bb4a09866 [mtdoops: clean-up new MTD API usage]
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/mtdoops.c')
-rw-r--r-- | drivers/mtd/mtdoops.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c index ae36d7e1e913..6ba9507b7c84 100644 --- a/drivers/mtd/mtdoops.c +++ b/drivers/mtd/mtdoops.c | |||
@@ -169,14 +169,7 @@ static void mtdoops_workfunc_erase(struct work_struct *work) | |||
169 | cxt->nextpage = 0; | 169 | cxt->nextpage = 0; |
170 | } | 170 | } |
171 | 171 | ||
172 | while (1) { | 172 | while ((ret = mtd_block_isbad(mtd, cxt->nextpage * record_size)) > 0) { |
173 | ret = mtd_block_isbad(mtd, cxt->nextpage * record_size); | ||
174 | if (!ret) | ||
175 | break; | ||
176 | if (ret < 0) { | ||
177 | printk(KERN_ERR "mtdoops: block_isbad failed, aborting\n"); | ||
178 | return; | ||
179 | } | ||
180 | badblock: | 173 | badblock: |
181 | printk(KERN_WARNING "mtdoops: bad block at %08lx\n", | 174 | printk(KERN_WARNING "mtdoops: bad block at %08lx\n", |
182 | cxt->nextpage * record_size); | 175 | cxt->nextpage * record_size); |
@@ -190,6 +183,11 @@ badblock: | |||
190 | } | 183 | } |
191 | } | 184 | } |
192 | 185 | ||
186 | if (ret < 0) { | ||
187 | printk(KERN_ERR "mtdoops: mtd_block_isbad failed, aborting\n"); | ||
188 | return; | ||
189 | } | ||
190 | |||
193 | for (j = 0, ret = -1; (j < 3) && (ret < 0); j++) | 191 | for (j = 0, ret = -1; (j < 3) && (ret < 0); j++) |
194 | ret = mtdoops_erase_block(cxt, cxt->nextpage * record_size); | 192 | ret = mtdoops_erase_block(cxt, cxt->nextpage * record_size); |
195 | 193 | ||