diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mtd/inftlcore.c | 11 | ||||
| -rw-r--r-- | drivers/mtd/nftlcore.c | 16 |
2 files changed, 14 insertions, 13 deletions
diff --git a/drivers/mtd/inftlcore.c b/drivers/mtd/inftlcore.c index 73f05227dc8c..d8cf29c01cc4 100644 --- a/drivers/mtd/inftlcore.c +++ b/drivers/mtd/inftlcore.c | |||
| @@ -226,7 +226,7 @@ static u16 INFTL_findfreeblock(struct INFTLrecord *inftl, int desperate) | |||
| 226 | if (!desperate && inftl->numfreeEUNs < 2) { | 226 | if (!desperate && inftl->numfreeEUNs < 2) { |
| 227 | DEBUG(MTD_DEBUG_LEVEL1, "INFTL: there are too few free " | 227 | DEBUG(MTD_DEBUG_LEVEL1, "INFTL: there are too few free " |
| 228 | "EUNs (%d)\n", inftl->numfreeEUNs); | 228 | "EUNs (%d)\n", inftl->numfreeEUNs); |
| 229 | return 0xffff; | 229 | return BLOCK_NIL; |
| 230 | } | 230 | } |
| 231 | 231 | ||
| 232 | /* Scan for a free block */ | 232 | /* Scan for a free block */ |
| @@ -281,7 +281,8 @@ static u16 INFTL_foldchain(struct INFTLrecord *inftl, unsigned thisVUC, unsigned | |||
| 281 | silly = MAX_LOOPS; | 281 | silly = MAX_LOOPS; |
| 282 | while (thisEUN < inftl->nb_blocks) { | 282 | while (thisEUN < inftl->nb_blocks) { |
| 283 | for (block = 0; block < inftl->EraseSize/SECTORSIZE; block ++) { | 283 | for (block = 0; block < inftl->EraseSize/SECTORSIZE; block ++) { |
| 284 | if ((BlockMap[block] != 0xffff) || BlockDeleted[block]) | 284 | if ((BlockMap[block] != BLOCK_NIL) || |
| 285 | BlockDeleted[block]) | ||
| 285 | continue; | 286 | continue; |
| 286 | 287 | ||
| 287 | if (inftl_read_oob(mtd, (thisEUN * inftl->EraseSize) | 288 | if (inftl_read_oob(mtd, (thisEUN * inftl->EraseSize) |
| @@ -525,7 +526,7 @@ static inline u16 INFTL_findwriteunit(struct INFTLrecord *inftl, unsigned block) | |||
| 525 | if (!silly--) { | 526 | if (!silly--) { |
| 526 | printk(KERN_WARNING "INFTL: infinite loop in " | 527 | printk(KERN_WARNING "INFTL: infinite loop in " |
| 527 | "Virtual Unit Chain 0x%x\n", thisVUC); | 528 | "Virtual Unit Chain 0x%x\n", thisVUC); |
| 528 | return 0xffff; | 529 | return BLOCK_NIL; |
| 529 | } | 530 | } |
| 530 | 531 | ||
| 531 | /* Skip to next block in chain */ | 532 | /* Skip to next block in chain */ |
| @@ -549,7 +550,7 @@ hitused: | |||
| 549 | * waiting to be picked up. We're going to have to fold | 550 | * waiting to be picked up. We're going to have to fold |
| 550 | * a chain to make room. | 551 | * a chain to make room. |
| 551 | */ | 552 | */ |
| 552 | thisEUN = INFTL_makefreeblock(inftl, 0xffff); | 553 | thisEUN = INFTL_makefreeblock(inftl, BLOCK_NIL); |
| 553 | 554 | ||
| 554 | /* | 555 | /* |
| 555 | * Hopefully we free something, lets try again. | 556 | * Hopefully we free something, lets try again. |
| @@ -631,7 +632,7 @@ hitused: | |||
| 631 | 632 | ||
| 632 | printk(KERN_WARNING "INFTL: error folding to make room for Virtual " | 633 | printk(KERN_WARNING "INFTL: error folding to make room for Virtual " |
| 633 | "Unit Chain 0x%x\n", thisVUC); | 634 | "Unit Chain 0x%x\n", thisVUC); |
| 634 | return 0xffff; | 635 | return BLOCK_NIL; |
| 635 | } | 636 | } |
| 636 | 637 | ||
| 637 | /* | 638 | /* |
diff --git a/drivers/mtd/nftlcore.c b/drivers/mtd/nftlcore.c index e3f8495a94c2..fb86cacd5bdb 100644 --- a/drivers/mtd/nftlcore.c +++ b/drivers/mtd/nftlcore.c | |||
| @@ -208,7 +208,7 @@ static u16 NFTL_findfreeblock(struct NFTLrecord *nftl, int desperate ) | |||
| 208 | /* Normally, we force a fold to happen before we run out of free blocks completely */ | 208 | /* Normally, we force a fold to happen before we run out of free blocks completely */ |
| 209 | if (!desperate && nftl->numfreeEUNs < 2) { | 209 | if (!desperate && nftl->numfreeEUNs < 2) { |
| 210 | DEBUG(MTD_DEBUG_LEVEL1, "NFTL_findfreeblock: there are too few free EUNs\n"); | 210 | DEBUG(MTD_DEBUG_LEVEL1, "NFTL_findfreeblock: there are too few free EUNs\n"); |
| 211 | return 0xffff; | 211 | return BLOCK_NIL; |
| 212 | } | 212 | } |
| 213 | 213 | ||
| 214 | /* Scan for a free block */ | 214 | /* Scan for a free block */ |
| @@ -230,11 +230,11 @@ static u16 NFTL_findfreeblock(struct NFTLrecord *nftl, int desperate ) | |||
| 230 | printk("Argh! No free blocks found! LastFreeEUN = %d, " | 230 | printk("Argh! No free blocks found! LastFreeEUN = %d, " |
| 231 | "FirstEUN = %d\n", nftl->LastFreeEUN, | 231 | "FirstEUN = %d\n", nftl->LastFreeEUN, |
| 232 | le16_to_cpu(nftl->MediaHdr.FirstPhysicalEUN)); | 232 | le16_to_cpu(nftl->MediaHdr.FirstPhysicalEUN)); |
| 233 | return 0xffff; | 233 | return BLOCK_NIL; |
| 234 | } | 234 | } |
| 235 | } while (pot != nftl->LastFreeEUN); | 235 | } while (pot != nftl->LastFreeEUN); |
| 236 | 236 | ||
| 237 | return 0xffff; | 237 | return BLOCK_NIL; |
| 238 | } | 238 | } |
| 239 | 239 | ||
| 240 | static u16 NFTL_foldchain (struct NFTLrecord *nftl, unsigned thisVUC, unsigned pendingblock ) | 240 | static u16 NFTL_foldchain (struct NFTLrecord *nftl, unsigned thisVUC, unsigned pendingblock ) |
| @@ -431,7 +431,7 @@ static u16 NFTL_foldchain (struct NFTLrecord *nftl, unsigned thisVUC, unsigned p | |||
| 431 | 431 | ||
| 432 | /* add the header so that it is now a valid chain */ | 432 | /* add the header so that it is now a valid chain */ |
| 433 | oob.u.a.VirtUnitNum = oob.u.a.SpareVirtUnitNum = cpu_to_le16(thisVUC); | 433 | oob.u.a.VirtUnitNum = oob.u.a.SpareVirtUnitNum = cpu_to_le16(thisVUC); |
| 434 | oob.u.a.ReplUnitNum = oob.u.a.SpareReplUnitNum = 0xffff; | 434 | oob.u.a.ReplUnitNum = oob.u.a.SpareReplUnitNum = BLOCK_NIL; |
| 435 | 435 | ||
| 436 | nftl_write_oob(mtd, (nftl->EraseSize * targetEUN) + 8, | 436 | nftl_write_oob(mtd, (nftl->EraseSize * targetEUN) + 8, |
| 437 | 8, &retlen, (char *)&oob.u); | 437 | 8, &retlen, (char *)&oob.u); |
| @@ -515,7 +515,7 @@ static u16 NFTL_makefreeblock( struct NFTLrecord *nftl , unsigned pendingblock) | |||
| 515 | if (ChainLength < 2) { | 515 | if (ChainLength < 2) { |
| 516 | printk(KERN_WARNING "No Virtual Unit Chains available for folding. " | 516 | printk(KERN_WARNING "No Virtual Unit Chains available for folding. " |
| 517 | "Failing request\n"); | 517 | "Failing request\n"); |
| 518 | return 0xffff; | 518 | return BLOCK_NIL; |
| 519 | } | 519 | } |
| 520 | 520 | ||
| 521 | return NFTL_foldchain (nftl, LongestChain, pendingblock); | 521 | return NFTL_foldchain (nftl, LongestChain, pendingblock); |
| @@ -578,7 +578,7 @@ static inline u16 NFTL_findwriteunit(struct NFTLrecord *nftl, unsigned block) | |||
| 578 | printk(KERN_WARNING | 578 | printk(KERN_WARNING |
| 579 | "Infinite loop in Virtual Unit Chain 0x%x\n", | 579 | "Infinite loop in Virtual Unit Chain 0x%x\n", |
| 580 | thisVUC); | 580 | thisVUC); |
| 581 | return 0xffff; | 581 | return BLOCK_NIL; |
| 582 | } | 582 | } |
| 583 | 583 | ||
| 584 | /* Skip to next block in chain */ | 584 | /* Skip to next block in chain */ |
| @@ -601,7 +601,7 @@ static inline u16 NFTL_findwriteunit(struct NFTLrecord *nftl, unsigned block) | |||
| 601 | //u16 startEUN = nftl->EUNtable[thisVUC]; | 601 | //u16 startEUN = nftl->EUNtable[thisVUC]; |
| 602 | 602 | ||
| 603 | //printk("Write to VirtualUnitChain %d, calling makefreeblock()\n", thisVUC); | 603 | //printk("Write to VirtualUnitChain %d, calling makefreeblock()\n", thisVUC); |
| 604 | writeEUN = NFTL_makefreeblock(nftl, 0xffff); | 604 | writeEUN = NFTL_makefreeblock(nftl, BLOCK_NIL); |
| 605 | 605 | ||
| 606 | if (writeEUN == BLOCK_NIL) { | 606 | if (writeEUN == BLOCK_NIL) { |
| 607 | /* OK, we accept that the above comment is | 607 | /* OK, we accept that the above comment is |
| @@ -673,7 +673,7 @@ static inline u16 NFTL_findwriteunit(struct NFTLrecord *nftl, unsigned block) | |||
| 673 | 673 | ||
| 674 | printk(KERN_WARNING "Error folding to make room for Virtual Unit Chain 0x%x\n", | 674 | printk(KERN_WARNING "Error folding to make room for Virtual Unit Chain 0x%x\n", |
| 675 | thisVUC); | 675 | thisVUC); |
| 676 | return 0xffff; | 676 | return BLOCK_NIL; |
| 677 | } | 677 | } |
| 678 | 678 | ||
| 679 | static int nftl_writeblock(struct mtd_blktrans_dev *mbd, unsigned long block, | 679 | static int nftl_writeblock(struct mtd_blktrans_dev *mbd, unsigned long block, |
