diff options
| -rw-r--r-- | drivers/mtd/ubi/build.c | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index f49e49dc5928..5ebe280225d6 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c | |||
| @@ -672,33 +672,7 @@ static int io_init(struct ubi_device *ubi) | |||
| 672 | ubi->nor_flash = 1; | 672 | ubi->nor_flash = 1; |
| 673 | } | 673 | } |
| 674 | 674 | ||
| 675 | /* | 675 | ubi->min_io_size = ubi->mtd->writesize; |
| 676 | * Set UBI min. I/O size (@ubi->min_io_size). We use @mtd->writebufsize | ||
| 677 | * for these purposes, not @mtd->writesize. At the moment this does not | ||
| 678 | * matter for NAND, because currently @mtd->writebufsize is equivalent to | ||
| 679 | * @mtd->writesize for all NANDs. However, some CFI NOR flashes may | ||
| 680 | * have @mtd->writebufsize which is multiple of @mtd->writesize. | ||
| 681 | * | ||
| 682 | * The reason we use @mtd->writebufsize for @ubi->min_io_size is that | ||
| 683 | * UBI and UBIFS recovery algorithms rely on the fact that if there was | ||
| 684 | * an unclean power cut, then we can find offset of the last corrupted | ||
| 685 | * node, align the offset to @ubi->min_io_size, read the rest of the | ||
| 686 | * eraseblock starting from this offset, and check whether there are | ||
| 687 | * only 0xFF bytes. If yes, then we are probably dealing with a | ||
| 688 | * corruption caused by a power cut, if not, then this is probably some | ||
| 689 | * severe corruption. | ||
| 690 | * | ||
| 691 | * Thus, we have to use the maximum write unit size of the flash, which | ||
| 692 | * is @mtd->writebufsize, because @mtd->writesize is the minimum write | ||
| 693 | * size, not the maximum. | ||
| 694 | */ | ||
| 695 | if (ubi->mtd->type == MTD_NANDFLASH) | ||
| 696 | ubi_assert(ubi->mtd->writebufsize == ubi->mtd->writesize); | ||
| 697 | else if (ubi->mtd->type == MTD_NORFLASH) | ||
| 698 | ubi_assert(ubi->mtd->writebufsize % ubi->mtd->writesize == 0); | ||
| 699 | |||
| 700 | ubi->min_io_size = ubi->mtd->writebufsize; | ||
| 701 | |||
| 702 | ubi->hdrs_min_io_size = ubi->mtd->writesize >> ubi->mtd->subpage_sft; | 676 | ubi->hdrs_min_io_size = ubi->mtd->writesize >> ubi->mtd->subpage_sft; |
| 703 | 677 | ||
| 704 | /* | 678 | /* |
