[PATCH v6 02/16] drm/bridge: synopsys: dw-dp: Cancel pending HPD work on unbind
Sebastian Reichel
sebastian.reichel at collabora.com
Fri Jul 24 11:03:24 PDT 2026
There is a race condition during device unbind: If the HPD interrupt
started an HPD worker exactly when the unbind happens, the worker
thread might access invalid resources. Avoid this by stopping any
pending work immediately after disabling the interrupt.
Fixes: 86eecc3a9c2e ("drm/bridge: synopsys: Add DW DPTX Controller support library")
Reported-by: Sashiko <sashiko-bot at kernel.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel at collabora.com>
---
drivers/gpu/drm/bridge/synopsys/dw-dp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
index 368e1f85e625..21bd08571dcf 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
@@ -2009,6 +2009,7 @@ EXPORT_SYMBOL_GPL(dw_dp_bind);
void dw_dp_unbind(struct dw_dp *dp)
{
disable_irq(dp->irq);
+ cancel_work_sync(&dp->hpd_work);
phy_exit(dp->phy);
drm_dp_aux_unregister(&dp->aux);
drm_bridge_remove(&dp->bridge);
--
2.53.0
More information about the Linux-rockchip
mailing list