[PATCH v2 5/5] mtd: ofpart: move ofpart partitions to a dedicated dt node
Michal Suchanek
hramrach at gmail.com
Fri Jul 31 15:32:32 PDT 2015
On 31 July 2015 at 19:24, Boris Brezillon
<boris.brezillon at free-electrons.com> wrote:
> On Fri, 31 Jul 2015 18:52:01 +0200
> Michal Suchanek <hramrach at 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
More information about the linux-mtd
mailing list