aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/mtdoops.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/mtdoops.c')
-rw-r--r--drivers/mtd/mtdoops.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c
index f5b3f91fa1cc..97bb8f6304d4 100644
--- a/drivers/mtd/mtdoops.c
+++ b/drivers/mtd/mtdoops.c
@@ -271,7 +271,7 @@ static void find_next_position(struct mtdoops_context *cxt)
271 271
272 if (count[0] == 0xffffffff && count[1] == 0xffffffff) 272 if (count[0] == 0xffffffff && count[1] == 0xffffffff)
273 mark_page_unused(cxt, page); 273 mark_page_unused(cxt, page);
274 if (count[0] == 0xffffffff) 274 if (count[0] == 0xffffffff || count[1] != MTDOOPS_KERNMSG_MAGIC)
275 continue; 275 continue;
276 if (maxcount == 0xffffffff) { 276 if (maxcount == 0xffffffff) {
277 maxcount = count[0]; 277 maxcount = count[0];
@@ -289,14 +289,13 @@ static void find_next_position(struct mtdoops_context *cxt)
289 } 289 }
290 } 290 }
291 if (maxcount == 0xffffffff) { 291 if (maxcount == 0xffffffff) {
292 cxt->nextpage = 0; 292 cxt->nextpage = cxt->oops_pages - 1;
293 cxt->nextcount = 1; 293 cxt->nextcount = 0;
294 schedule_work(&cxt->work_erase); 294 }
295 return; 295 else {
296 cxt->nextpage = maxpos;
297 cxt->nextcount = maxcount;
296 } 298 }
297
298 cxt->nextpage = maxpos;
299 cxt->nextcount = maxcount;
300 299
301 mtdoops_inc_counter(cxt); 300 mtdoops_inc_counter(cxt);
302} 301}