If mipi_dsi_attach() fails, we must undo the drm_panel_add() call hidden in sw43408_add(), as already done in the remove function. Fixes: 069a6c0e94f9 ("drm: panel: Add LG sw43408 panel driver") Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- Compile tested only --- drivers/gpu/drm/panel/panel-lg-sw43408.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panel/panel-lg-sw43408.c b/drivers/gpu/drm/panel/panel-lg-sw43408.c index 115f4702d59f..27f2ad788d38 100644 --- a/drivers/gpu/drm/panel/panel-lg-sw43408.c +++ b/drivers/gpu/drm/panel/panel-lg-sw43408.c @@ -286,7 +286,15 @@ static int sw43408_probe(struct mipi_dsi_device *dsi) dsi->dsc = &ctx->dsc; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret < 0) + goto err_remove_panel; + + return 0; + +err_remove_panel: + drm_panel_remove(&ctx->base); + return ret; } static void sw43408_remove(struct mipi_dsi_device *dsi) -- 2.45.1