[PATCH 10/17] drm/imx: imx-ldb: fix edid memory leak
Marco Felsch
m.felsch at pengutronix.de
Thu Feb 27 16:21:18 UTC 2020
The edid memory is only freed if the component.unbind() is called. This
is okay if the imx-ldb was bound but if the bind() fails we leek the
memory.
Signed-off-by: Marco Felsch <m.felsch at pengutronix.de>
---
drivers/gpu/drm/imx/imx-ldb.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
index 92fb85703c73..06b435f9b6c9 100644
--- a/drivers/gpu/drm/imx/imx-ldb.c
+++ b/drivers/gpu/drm/imx/imx-ldb.c
@@ -552,9 +552,9 @@ static int imx_ldb_panel_ddc(struct device *dev,
edidp = of_get_property(child, "edid",
&channel->edid_len);
if (edidp) {
- channel->edid = kmemdup(edidp,
- channel->edid_len,
- GFP_KERNEL);
+ channel->edid = devm_kmemdup(dev, edidp,
+ channel->edid_len,
+ GFP_KERNEL);
} else if (!channel->panel) {
/* fallback to display-timings node */
ret = of_get_drm_display_mode(child,
@@ -711,7 +711,6 @@ static void imx_ldb_unbind(struct device *dev, struct device *master,
if (channel->panel)
drm_panel_detach(channel->panel);
- kfree(channel->edid);
i2c_put_adapter(channel->ddc);
}
}
--
2.20.1
More information about the dri-devel
mailing list