diff options
author | Brian Norris <briannorris@chromium.org> | 2021-09-24 02:33:55 +0200 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2021-10-14 21:55:12 +0200 |
commit | 9bf7123bb07f98dc76acb5daa91248e6f95713cb (patch) | |
tree | a4a8df3c8b4490a98236738ed47f4d2541dc9f39 /drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | |
parent | drm/panel: innolux-p079zca: Delete panel on attach() failure (diff) | |
download | linux-9bf7123bb07f98dc76acb5daa91248e6f95713cb.tar.xz linux-9bf7123bb07f98dc76acb5daa91248e6f95713cb.zip |
drm/panel: Delete panel on mipi_dsi_attach() failure
Many DSI panel drivers fail to clean up their panel references on
mipi_dsi_attach() failure, so we're leaving a dangling drm_panel
reference to freed memory. Clean that up on failure.
Noticed by inspection, after seeing similar problems on other drivers.
Therefore, I'm not marking Fixes/stable.
Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210923173336.3.If9e74fa9b1d6eaa9e0e5b95b2b957b992740251c@changeid
Diffstat (limited to 'drivers/gpu/drm/panel/panel-jdi-lt070me05000.c')
-rw-r--r-- | drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c index 733010b5e4f5..3c86ad262d5e 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -473,7 +473,13 @@ static int jdi_panel_probe(struct mipi_dsi_device *dsi) if (ret < 0) return ret; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret < 0) { + jdi_panel_del(jdi); + return ret; + } + + return 0; } static int jdi_panel_remove(struct mipi_dsi_device *dsi) |