Hello, Maxime.
On Fri, May 05, 2017 at 09:55:18PM +0200, Maxime Ripard wrote:
quoted
It doesn't make any sense to use the managed functions from the
release functions and if you're always matching devm_kmalloc() with
devm_kfree(), the only thing it'd do is confusing its readers.
I wouldn't say that being able to recover and free whatever memory
leak we might have not making sense, but ok. That was one of the
options, let's discard it.
The other one is: refactor the rest of the allocations so that you
don't have a mix of devm_kmalloc / devm_kfree and kmalloc / kfree for
the same purpose in the same function.
So, I think the issues here are
1. Use of devm functions in a devres release function. This just
doesn't make sense.
2. If a resource is always allocated and freed in the same function,
there's no reason to use devres for it. I understand that there
can be exceptions for this, e.g. consistency, but it doesn't seem
to apply here.
3. Last but not least, allocating memory to destroy a radix tree. It
should be able to do that without allocating any memory.
Thanks.
--
tejun