mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-13 18:56:59 +02:00
mtd: mtdpart: Support MTD_SIZE_REMAINING with unallocated memory area
If there is an unallocated memory area before the last, filling parting the size calculation for MTD_SIZE_REMAINING does not take this hole into account. Fix this by calculating the remaining size just based on total size and partition offset. Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
This commit is contained in:
parent
d821274054
commit
1ca97ee903
@ -208,7 +208,7 @@ int mtd_parse_partitions(struct mtd_info *parent, const char **_mtdparts,
|
||||
{
|
||||
struct mtd_partition partition = {}, *parts;
|
||||
const char *mtdparts = *_mtdparts;
|
||||
uint64_t cur_off = 0, cur_sz = 0;
|
||||
uint64_t cur_off = 0;
|
||||
int nparts = 0;
|
||||
int ret, idx;
|
||||
u64 sz;
|
||||
@ -237,8 +237,7 @@ int mtd_parse_partitions(struct mtd_info *parent, const char **_mtdparts,
|
||||
return ret;
|
||||
|
||||
if (parts[idx].size == MTD_SIZE_REMAINING)
|
||||
parts[idx].size = parent->size - cur_sz;
|
||||
cur_sz += parts[idx].size;
|
||||
parts[idx].size = parent->size - parts[idx].offset;
|
||||
|
||||
sz = parts[idx].size;
|
||||
if (sz < parent->writesize || do_div(sz, parent->writesize)) {
|
||||
|
Loading…
Reference in New Issue
Block a user