On Mon, 18 May 2026 18:01:40 +0000, Jonas Karlman <[email protected]> wrote:
Hello Jonas, > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > index b7bfc0e9a6b2..9d795c550f8a 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c > @@ -2600,10 +2609,14 @@ static int dw_hdmi_connector_create(struct dw_hdmi > *hdmi) > > drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs); > > - drm_connector_init_with_ddc(hdmi->bridge.dev, connector, > - &dw_hdmi_connector_funcs, > - DRM_MODE_CONNECTOR_HDMIA, > - hdmi->ddc); > + ret = drm_connector_init_with_ddc(hdmi->bridge.dev, connector, > + &dw_hdmi_connector_funcs, > + DRM_MODE_CONNECTOR_HDMIA, > + hdmi->ddc); > + if (ret) > + return ret; > + > + drm_bridge_get(&hdmi->bridge); I'm not fully following the code paths, but both the report and the fix make sense to me. Only I'd move the drm_bridge_get() before drm_connector_init_with_ddc(), to avoid a short window where no reference is held and the bridge might be destroyed before drm_bridge_get() is called. I'm not sure this can happen, but it's better to write the code in a way that clearly makes it impossible. Otherwise looks good. Luca -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
