summary refs log tree commit diff
path: root/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
diff options
context:
space:
mode:
authorBrian Norris <briannorris@chromium.org>2021-09-23 17:33:53 -0700
committerSam Ravnborg <sam@ravnborg.org>2021-10-14 21:55:00 +0200
commit5f31dbeae8a88f31c3eb4eb526ab4807c40da241 (patch)
tree8e6c195663d4cc02a9e7a78f617e1c3ff4f0f498 /drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
parent437c3d87590e7c1d901c66d8916e7a58f0fc7ff7 (diff)
downloadlinux-5f31dbeae8a88f31c3eb4eb526ab4807c40da241.tar.gz
drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
If we fail to attach (e.g., because 1 of 2 dual-DSI controllers aren't
ready), we leave a dangling drm_panel reference to freed memory. Clean
that up on failure.

Fixes: 2a994cbed6b2 ("drm/panel: Add Kingdisplay KD097D04 panel driver")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210923173336.1.Icb4d9dbc1817f4e826361a4f1cea7461541668f0@changeid
Diffstat (limited to 'drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c')
-rw-r--r--drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
index 86e4213e8bb1..daccb1fd5fda 100644
--- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
+++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
@@ -406,7 +406,13 @@ static int kingdisplay_panel_probe(struct mipi_dsi_device *dsi)
 	if (err < 0)
 		return err;
 
-	return mipi_dsi_attach(dsi);
+	err = mipi_dsi_attach(dsi);
+	if (err < 0) {
+		kingdisplay_panel_del(kingdisplay);
+		return err;
+	}
+
+	return 0;
 }
 
 static int kingdisplay_panel_remove(struct mipi_dsi_device *dsi)