linux/drivers/gpu/drm/mediatek
Johan Hovold 926d002e6d drm/mediatek: Fix device use-after-free on unbind
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 80805b62ea ("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.

Fixes: 1f403699c4 ("drm/mediatek: Fix device/node reference count leaks in mtk_drm_get_all_drm_priv")
Reported-by: Sjoerd Simons <sjoerd@collabora.com>
Closes: https://lore.kernel.org/r/20251003-mtk-drm-refcount-v1-1-3b3f2813b0db@collabora.com
Cc: stable@vger.kernel.org
Cc: Ma Ke <make24@iscas.ac.cn>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Sjoerd Simons <sjoerd@collabora.com>
Tested-by: Sjoerd Simons <sjoerd@collabora.com>
Tested-by: Ritesh Raj Sarraf <ritesh.sarraf@collabora.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20251006093937.27869-1-johan@kernel.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
2025-10-28 14:56:16 +00:00
..
Kconfig drm/mediatek: stop selecting foreign drivers 2024-12-25 15:29:57 +00:00
Makefile drm/mediatek: mtk_hdmi_ddc: Switch to register as module_platform_driver 2025-04-21 12:27:55 +00:00
mtk_cec.c drm/mediatek: mtk_cec: Switch to register as module_platform_driver 2025-04-17 23:26:14 +00:00
mtk_cec.h
mtk_crtc.c drm/mediatek: only announce AFBC if really supported 2025-07-17 23:19:05 +00:00
mtk_crtc.h drm/mediatek: Add wait_event_timeout when disabling plane 2025-07-17 23:18:53 +00:00
mtk_ddp_comp.c drm/mediatek: only announce AFBC if really supported 2025-07-17 23:19:05 +00:00
mtk_ddp_comp.h drm/mediatek: only announce AFBC if really supported 2025-07-17 23:19:05 +00:00
mtk_disp_aal.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
mtk_disp_ccorr.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
mtk_disp_color.c drm/mediatek: Move to devm_platform_ioremap_resource() usage 2025-03-02 14:59:55 +00:00
mtk_disp_drv.h drm/mediatek: only announce AFBC if really supported 2025-07-17 23:19:05 +00:00
mtk_disp_gamma.c drm/mediatek: Move to devm_platform_ioremap_resource() usage 2025-03-02 14:59:55 +00:00
mtk_disp_merge.c drm/mediatek: Move to devm_platform_ioremap_resource() usage 2025-03-02 14:59:55 +00:00
mtk_disp_ovl.c drm/mediatek: only announce AFBC if really supported 2025-07-17 23:19:05 +00:00
mtk_disp_ovl_adaptor.c drm/mediatek: Replace custom compare_dev with component_compare_of 2025-05-14 23:12:24 +00:00
mtk_disp_rdma.c drm/mediatek: Move to devm_platform_ioremap_resource() usage 2025-03-02 14:59:55 +00:00
mtk_dp.c drm/bridge: Pass down connector to drm bridge detect hook 2025-07-14 18:23:18 +03:00
mtk_dp_reg.h drm/mediatek: dp: Add sdp path reset 2024-12-25 13:34:41 +00:00
mtk_dpi.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
mtk_dpi_regs.h drm/mediatek: Add support for MT8195 Digital Parallel Interface 2025-03-02 14:11:09 +00:00
mtk_drm_drv.c drm/mediatek: Fix device use-after-free on unbind 2025-10-28 14:56:16 +00:00
mtk_drm_drv.h drm/mediatek: Implement OF graphs support for display paths 2024-10-21 12:42:25 +00:00
mtk_dsi.c drm/mediatek: dsi: Fix DSI host and panel bridge pre-enable order 2025-08-14 14:07:06 +00:00
mtk_ethdr.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
mtk_ethdr.h drm/mediatek: Add blend_modes to mtk_plane_init() for different SoCs 2024-10-22 12:47:47 +00:00
mtk_gem.c
mtk_gem.h
mtk_hdmi.c drm/mediatek: mtk_hdmi: Fix inverted parameters in some regmap_update_bits calls 2025-08-28 23:15:41 +00:00
mtk_hdmi_ddc.c drm/mediatek: mtk_hdmi_ddc: Switch to register as module_platform_driver 2025-04-21 12:27:55 +00:00
mtk_hdmi_regs.h
mtk_mdp_rdma.c drm/mediatek: Move to devm_platform_ioremap_resource() usage 2025-03-02 14:59:55 +00:00
mtk_mdp_rdma.h
mtk_padding.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
mtk_plane.c drm/mediatek: Add error handling for old state CRTC in atomic_disable 2025-08-13 23:50:06 +00:00
mtk_plane.h drm/mediatek: only announce AFBC if really supported 2025-07-17 23:19:05 +00:00