drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure
authorBrian Norris <briannorris@chromium.org>
Fri, 24 Sep 2021 00:33:53 +0000 (17:33 -0700)
committerSam Ravnborg <sam@ravnborg.org>
Thu, 14 Oct 2021 19:55:00 +0000 (21:55 +0200)
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
drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c

index 86e4213e8bb13f6e834c91bb755d599143f3adc4..daccb1fd5fdad82dcdfd8caacfe89e43a5bb5746 100644 (file)
@@ -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)