Re: [PATCH v2 5/5] mtd: ofpart: move ofpart partitions to a dedicated dt node

Michal Suchanek
2015-07-31T22:33:34Z

On 31 July 2015 at 19:24, Boris Brezillon
<boris.brezillon@free-electrons.com> wrote:
> On Fri, 31 Jul 2015 18:52:01 +0200
> Michal Suchanek <hramrach@gmail.com> wrote:
>
>
>> >
>> >> (*pparts)[i].offset = of_read_number(reg, a_cells);
>> >> (*pparts)[i].size = of_read_number(reg + a_cells, s_cells);
>> >>
>> >> @@ -92,15 +116,15 @@ static int parse_ofpart_partitions(struct mtd_info *master,
>> >> i++;
>> >> }
>> >>
>> >> - if (!i) {
>> >> - of_node_put(pp);
>> >> - pr_err("No valid partition found on %s\n", node->full_name);
>> >> - kfree(*pparts);
>> >> - *pparts = NULL;
>> >> - return -EINVAL;
>> >> - }
>> >> -
>> >
>> > Are you sure you can safely remove this check?
>>
>> Yes. It was incomplete check to reject some partitioning schemes
>> considered invalid.
>>
>> Now there is stricter checking above so this can be removed.
>
> Indeed, I was worried about resources deallocation, but this is handle
> by the caller, and if nr_parts is zero the master MTD device will
> be exposed.

Due to compatibility with the previous scheme there is still
possibility that partitions are allocated, and no partitions are
returned due to the nr_parts--;

So yes, the pparts could possibly leak in this case if there were more
partition parsers following ofpart and should be deallocated.

Thanks

Michal