drm/vc4: vec: Switch to drmm_kzalloc
authorMaxime Ripard <maxime@cerno.tech>
Mon, 23 May 2022 15:11:29 +0000 (17:11 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 7 Sep 2022 08:53:06 +0000 (10:53 +0200)
commitf74510e16c0d9e16836ab230cfdfe76c8838fff6
tree0e312315b858865c7ac1ee54baec5e569fc99327
parent7fbbd9aac2e67fa6a42d6855ce539662628b94dd
drm/vc4: vec: Switch to drmm_kzalloc

Our internal structure that stores the DRM entities structure is allocated
through a device-managed kzalloc.

This means that this will eventually be freed whenever the device is
removed. In our case, the most likely source of removal is that the main
device is going to be unbound, and component_unbind_all() is being run.

However, it occurs while the DRM device is still registered, which will
create dangling pointers, eventually resulting in use-after-free.

Switch to a DRM-managed allocation to keep our structure until the DRM
driver doesn't need it anymore.

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drivers/gpu/drm/vc4/vc4_vec.c