Skip to content

Commit 57a9fb4

Browse files
diandersgregkh
authored andcommitted
drm/mediatek: dp: drm_err => dev_err in HPD path to avoid NULL ptr
[ Upstream commit 106a6de ] The function mtk_dp_wait_hpd_asserted() may be called before the `mtk_dp->drm_dev` pointer is assigned in mtk_dp_bridge_attach(). Specifically it can be called via this callpath: - mtk_edp_wait_hpd_asserted - [panel probe] - dp_aux_ep_probe Using "drm" level prints anywhere in this callpath causes a NULL pointer dereference. Change the error message directly in mtk_dp_wait_hpd_asserted() to dev_err() to avoid this. Also change the error messages in mtk_dp_parse_capabilities(), which is called by mtk_dp_wait_hpd_asserted(). While touching these prints, also add the error code to them to make future debugging easier. Fixes: 7eacba9 ("drm/mediatek: dp: Add .wait_hpd_asserted() for AUX bus") Signed-off-by: Douglas Anderson <[email protected]> Reviewed-by: CK Hu <[email protected]> Link: https://patchwork.kernel.org/project/dri-devel/patch/20250116094249.1.I29b0b621abb613ddc70ab4996426a3909e1aa75f@changeid/ Signed-off-by: Chun-Kuang Hu <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent e5838a2 commit 57a9fb4

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/gpu/drm/mediatek/mtk_dp.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1746,7 +1746,7 @@ static int mtk_dp_parse_capabilities(struct mtk_dp *mtk_dp)
17461746

17471747
ret = drm_dp_dpcd_readb(&mtk_dp->aux, DP_MSTM_CAP, &val);
17481748
if (ret < 1) {
1749-
drm_err(mtk_dp->drm_dev, "Read mstm cap failed\n");
1749+
dev_err(mtk_dp->dev, "Read mstm cap failed: %zd\n", ret);
17501750
return ret == 0 ? -EIO : ret;
17511751
}
17521752

@@ -1756,7 +1756,7 @@ static int mtk_dp_parse_capabilities(struct mtk_dp *mtk_dp)
17561756
DP_DEVICE_SERVICE_IRQ_VECTOR_ESI0,
17571757
&val);
17581758
if (ret < 1) {
1759-
drm_err(mtk_dp->drm_dev, "Read irq vector failed\n");
1759+
dev_err(mtk_dp->dev, "Read irq vector failed: %zd\n", ret);
17601760
return ret == 0 ? -EIO : ret;
17611761
}
17621762

@@ -2039,7 +2039,7 @@ static int mtk_dp_wait_hpd_asserted(struct drm_dp_aux *mtk_aux, unsigned long wa
20392039

20402040
ret = mtk_dp_parse_capabilities(mtk_dp);
20412041
if (ret) {
2042-
drm_err(mtk_dp->drm_dev, "Can't parse capabilities\n");
2042+
dev_err(mtk_dp->dev, "Can't parse capabilities: %d\n", ret);
20432043
return ret;
20442044
}
20452045

0 commit comments

Comments
 (0)