Hi Laurent, On Mon, Dec 14, 2020 at 5:28 PM Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > On Mon, Dec 14, 2020 at 04:20:17PM +0000, Kieran Bingham wrote: > > On 04/12/2020 22:01, Laurent Pinchart wrote: > > > devm_kcalloc() is the wrong API to allocate planes, as the lifetime of > > > the planes is tied to the DRM device, not the device to driver > > > binding. drmm_kcalloc() isn't a good option either, as it would result > > > in the planes being freed before being unregistered during the managed > > > cleanup of the DRM objects. Use a plain kcalloc(), and cleanup the > > > planes and free the memory in the existing rcar_du_vsp_cleanup() > > > handler. > > > > Managed memory always seems to hurt - which is a shame, because it > > should be better throughout. > > > > It's like we need a way to arbitrarily specify the lifetimes of objects > > correctly against another object... without being tied to a dev ... > > I've been saying for years that devm_kzalloc() is a major regression. > We've traded a memory leak for a use-after-free. The function has its > use cases, there are objects that need to match the lifetime of the > binding between a device and its driver, but that's a small minority. https://en.wikipedia.org/wiki/The_law_of_conservation_of_misery Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds