forked from OERV-BSP/u-boot
Followup fixes on the mtdparts spread patchset
Consolidate some code in mtd_get_len_incl_bad(), and fix a condition where a valid partition could be reported as truncated if it has a good block at the end of the device (unlikely, since the BBT is usually there). Fix mid-block declarations in net_part_size(). Signed-off-by: Scott Wood <scottwood@freescale.com> Reviewed-by: Ben Gardiner <bengardiner@nanometrics.ca>
This commit is contained in:
@@ -162,11 +162,6 @@ void mtd_get_len_incl_bad(struct mtd_info *mtd, uint64_t offset,
|
||||
*truncated = 0;
|
||||
*len_incl_bad = 0;
|
||||
|
||||
if (offset >= mtd->size) {
|
||||
*truncated = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mtd->block_isbad) {
|
||||
*len_incl_bad = length;
|
||||
return;
|
||||
@@ -176,6 +171,11 @@ void mtd_get_len_incl_bad(struct mtd_info *mtd, uint64_t offset,
|
||||
uint64_t block_len;
|
||||
|
||||
while (len_excl_bad < length) {
|
||||
if (offset >= mtd->size) {
|
||||
*truncated = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
block_len = mtd->erasesize - (offset & (mtd->erasesize - 1));
|
||||
|
||||
if (!mtd->block_isbad(mtd, offset & ~(mtd->erasesize - 1)))
|
||||
@@ -183,11 +183,6 @@ void mtd_get_len_incl_bad(struct mtd_info *mtd, uint64_t offset,
|
||||
|
||||
*len_incl_bad += block_len;
|
||||
offset += block_len;
|
||||
|
||||
if (offset >= mtd->size) {
|
||||
*truncated = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* defined(CONFIG_CMD_MTDPARTS_SPREAD) */
|
||||
|
||||
Reference in New Issue
Block a user