On Mon, 2025-10-06 at 11:39 +0200, Johan Hovold wrote:
> A recent change fixed device reference leaks when looking up drm
> platform device driver data during bind() but failed to remove a
> partial
> fix which had been added by commit 80805b62ea5b ("drm/mediatek: Fix
> kobject put for component sub-drivers").
> 
> This results in a reference imbalance on component bind() failures
> and
> on unbind() which could lead to a user-after-free.
> 
> Make sure to only drop the references after retrieving the driver
> data
> by effectively reverting the previous partial fix.
> 
> Note that holding a reference to a device does not prevent its driver
> data from going away so there is no point in keeping the reference.
> 

We ran into the same issue in mesaci[1] and have test validated this
proposed fix. It was tested with Linux 6.17.3 + this fix.

[1] https://gitlab.freedesktop.org/RickXy/mesa/-/jobs/86389548


Tested-by: Ritesh Raj Sarraf <[email protected]>

> Fixes: 1f403699c40f ("drm/mediatek: Fix device/node reference count
> leaks in mtk_drm_get_all_drm_priv")
> Reported-by: Sjoerd Simons <[email protected]>
> Link:
> https://lore.kernel.org/r/[email protected]
> Cc: [email protected]
> Cc: Ma Ke <[email protected]>
> Cc: AngeloGioacchino Del Regno
> <[email protected]>
> Signed-off-by: Johan Hovold <[email protected]>

-- 
Ritesh Raj Sarraf
Collabora

Reply via email to