Skip to content

Commit 8fbe215

Browse files
committed
Merge tag 'drm-misc-next-fixes-2026-01-29' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
Two fixes for NULL pointer dereference in imx8 following the bridge refcounting conversions, and one for the bridge connector following the HDMI audio reworks. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maxime Ripard <mripard@redhat.com> Link: https://patch.msgid.link/20260129-efficient-jerboa-of-ecstasy-822832@houat
2 parents 608fb0a + db7e7ea commit 8fbe215

3 files changed

Lines changed: 14 additions & 5 deletions

File tree

drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,12 @@ static inline struct imx8qxp_ldb *base_to_imx8qxp_ldb(struct ldb *base)
6565
static void imx8qxp_ldb_bridge_destroy(struct drm_bridge *bridge)
6666
{
6767
struct ldb_channel *ldb_ch = bridge->driver_private;
68-
struct ldb *ldb = ldb_ch->ldb;
69-
struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
68+
struct imx8qxp_ldb *imx8qxp_ldb;
69+
70+
if (!ldb_ch)
71+
return;
7072

73+
imx8qxp_ldb = base_to_imx8qxp_ldb(ldb_ch->ldb);
7174
drm_bridge_put(imx8qxp_ldb->companion);
7275
}
7376

drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ static void imx8qxp_pxl2dpi_bridge_destroy(struct drm_bridge *bridge)
6767
{
6868
struct imx8qxp_pxl2dpi *p2d = bridge->driver_private;
6969

70+
if (!p2d)
71+
return;
72+
7073
drm_bridge_put(p2d->companion);
7174
}
7275

drivers/gpu/drm/display/drm_bridge_connector.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,11 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
851851
!bridge->funcs->hdmi_clear_hdmi_infoframe)
852852
return ERR_PTR(-EINVAL);
853853

854+
if (bridge->ops & DRM_BRIDGE_OP_HDMI_AUDIO &&
855+
(!bridge->funcs->hdmi_write_audio_infoframe ||
856+
!bridge->funcs->hdmi_clear_audio_infoframe))
857+
return ERR_PTR(-EINVAL);
858+
854859
if (bridge->ops & DRM_BRIDGE_OP_HDMI_HDR_DRM_INFOFRAME &&
855860
(!bridge->funcs->hdmi_write_hdr_drm_infoframe ||
856861
!bridge->funcs->hdmi_clear_hdr_drm_infoframe))
@@ -880,9 +885,7 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
880885
!bridge->hdmi_audio_spdif_playback)
881886
return ERR_PTR(-EINVAL);
882887

883-
if (!bridge->funcs->hdmi_write_audio_infoframe ||
884-
!bridge->funcs->hdmi_clear_audio_infoframe ||
885-
!bridge->funcs->hdmi_audio_prepare ||
888+
if (!bridge->funcs->hdmi_audio_prepare ||
886889
!bridge->funcs->hdmi_audio_shutdown)
887890
return ERR_PTR(-EINVAL);
888891

0 commit comments

Comments
 (0)