Unverified Commit d0b4c1cf authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Javier Martinez Canillas
Browse files

drm/bridge_connector: Handle drm_connector_init_with_ddc() failures



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: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarMaxime Ripard <mripard@kernel.org>
Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/3a7e9540d8dc94298d021aa2fb046ae8616ca4dd.1689599701.git.geert+renesas@glider.be
parent cc4adf3a
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -318,6 +318,7 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
	struct i2c_adapter *ddc = NULL;
	struct i2c_adapter *ddc = NULL;
	struct drm_bridge *bridge, *panel_bridge = NULL;
	struct drm_bridge *bridge, *panel_bridge = NULL;
	int connector_type;
	int connector_type;
	int ret;


	bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL);
	bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL);
	if (!bridge_connector)
	if (!bridge_connector)
@@ -368,8 +369,14 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
		return ERR_PTR(-EINVAL);
		return ERR_PTR(-EINVAL);
	}
	}


	drm_connector_init_with_ddc(drm, connector, &drm_bridge_connector_funcs,
	ret = drm_connector_init_with_ddc(drm, connector,
					  &drm_bridge_connector_funcs,
					  connector_type, ddc);
					  connector_type, ddc);
	if (ret) {
		kfree(bridge_connector);
		return ERR_PTR(ret);
	}

	drm_connector_helper_add(connector, &drm_bridge_connector_helper_funcs);
	drm_connector_helper_add(connector, &drm_bridge_connector_helper_funcs);


	if (bridge_connector->bridge_hpd)
	if (bridge_connector->bridge_hpd)