]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure
authorMarek Vasut <marex@denx.de>
Fri, 14 Oct 2022 23:11:06 +0000 (01:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jan 2023 10:41:01 +0000 (11:41 +0100)
[ Upstream commit c62102165dd79284d42383d2f7ed17301bd8e629 ]

In case mipi_dsi_attach() fails, call drm_panel_remove() to
avoid memory leak.

Fixes: fa744ad42ad3 ("drm/panel: Add Sitronix ST7701 panel driver")
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20221014231106.468063-1-marex@denx.de
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/panel/panel-sitronix-st7701.c

index 09c5d9a6f9fa8a169e5e16f54b68fb757eeecf8c..638f605acb2db4368e26cf8a802caeb6d4c61c02 100644 (file)
@@ -392,7 +392,15 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
        st7701->dsi = dsi;
        st7701->desc = desc;
 
-       return mipi_dsi_attach(dsi);
+       ret = mipi_dsi_attach(dsi);
+       if (ret)
+               goto err_attach;
+
+       return 0;
+
+err_attach:
+       drm_panel_remove(&st7701->panel);
+       return ret;
 }
 
 static int st7701_dsi_remove(struct mipi_dsi_device *dsi)