drm_setup_crtcs allocated modes using drm_mode_duplicate. Free
them in drm_fb_helper_crtc_free.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/gpu/drm/drm_fb_helper.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index aada26f..77fec5a 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -430,8 +430,11 @@ static void drm_fb_helper_crtc_free(struct drm_fb_helper 
*helper)
        for (i = 0; i < helper->connector_count; i++)
                kfree(helper->connector_info[i]);
        kfree(helper->connector_info);
-       for (i = 0; i < helper->crtc_count; i++)
+       for (i = 0; i < helper->crtc_count; i++) {
                kfree(helper->crtc_info[i].mode_set.connectors);
+               if (helper->crtc_info[i].mode_set.mode)
+                       drm_mode_destroy(helper->dev, 
helper->crtc_info[i].mode_set.mode);
+       }
        kfree(helper->crtc_info);
 }

-- 
1.7.8.3

Reply via email to