Messages in this thread | | | Date | Sat, 25 Aug 2012 12:02:31 +0300 | From | Shmulik Ladkani <> | Subject | Re: [PATCH v2] mtd: cmdlinepart: fix the wrong partitions number when truncating occurs |
| |
Hi Huang,
On Sat, 25 Aug 2012 10:26:07 -0400 Huang Shijie <shijie8@gmail.com> wrote: > diff --git a/drivers/mtd/cmdlinepart.c b/drivers/mtd/cmdlinepart.c > index 4558e0f..fc960a3 100644 > --- a/drivers/mtd/cmdlinepart.c > +++ b/drivers/mtd/cmdlinepart.c > @@ -344,7 +344,8 @@ static int parse_cmdline_partitions(struct mtd_info *master, > "%s: partitioning exceeds flash size, truncating\n", > part->mtd_id); > part->parts[i].size = master->size - offset; > - part->num_parts = i; > + part->num_parts = i + 1; > + break;
Your analysis seems right, but let me offer an alternative approach.
I would simply:
- part->num_parts = i;
(and not replace it with anything).
The specified cmdline partitions might not be ordered (according to start offset), so next partition specified after the truncated one might define a partition at the beginning of the device, which is okay (regardless the truncation of current partition).
Your patch skips the definitions of next partitions, which can be legit.
I agree specifying "unsorted" partitions is not commonly used (and it might make no sense when using the "remaining" syntax), but it is legit to define all partitions _explicitly_ with their size@offset in an unordered fashion.
Regards, Shmulik
| |