diff options
Diffstat (limited to 'drivers/mtd/mtdoops.c')
-rw-r--r-- | drivers/mtd/mtdoops.c | 15 |
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 | } |