[PATCH] drm/bridge_connector: Handle drm_connector_init_with_ddc() failures
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Jun 19 20:32:33 UTC 2023
Hi Geert,
Thank you for the patch.
On Mon, Jun 19, 2023 at 02:24:21PM +0200, Geert Uytterhoeven wrote:
> drm_connector_init_with_ddc() can fail, but the call in
> drm_bridge_connector_init() does not check that. Fix this by adding
> the missing error handling.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
> ---
> drivers/gpu/drm/drm_bridge_connector.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_bridge_connector.c b/drivers/gpu/drm/drm_bridge_connector.c
> index 19ae4a177ac386b2..d2f5602ad4eb5953 100644
> --- a/drivers/gpu/drm/drm_bridge_connector.c
> +++ b/drivers/gpu/drm/drm_bridge_connector.c
> @@ -317,7 +317,7 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
> struct drm_connector *connector;
> struct i2c_adapter *ddc = NULL;
> struct drm_bridge *bridge, *panel_bridge = NULL;
> - int connector_type;
> + int connector_type, ret;
With 'ret' declared on a separate line,
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL);
> if (!bridge_connector)
> @@ -368,8 +368,14 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
> return ERR_PTR(-EINVAL);
> }
>
> - drm_connector_init_with_ddc(drm, connector, &drm_bridge_connector_funcs,
> - connector_type, ddc);
> + ret = drm_connector_init_with_ddc(drm, connector,
> + &drm_bridge_connector_funcs,
> + connector_type, ddc);
> + if (ret) {
> + kfree(bridge_connector);
> + return ERR_PTR(ret);
> + }
> +
> drm_connector_helper_add(connector, &drm_bridge_connector_helper_funcs);
>
> if (bridge_connector->bridge_hpd)
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list