diff options
author | Andrzej Hajda <a.hajda@samsung.com> | 2015-07-09 02:25:38 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2015-08-11 04:21:34 -0400 |
commit | e6e771dc05b07be1e2b6ced3fa764b30bdda517d (patch) | |
tree | f9fe324552ac8b7d238b06ca817109cfd057033b | |
parent | f2d016011c04fc36580a3efeeee9217fd80298f8 (diff) |
drm/exynos/hdmi: fix edid memory leak
edid returned by drm_get_edid should be freed.
The patch fixes it.
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_hdmi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 99e286489031..4a00990e4ae4 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c | |||
@@ -1064,6 +1064,7 @@ static int hdmi_get_modes(struct drm_connector *connector) | |||
1064 | { | 1064 | { |
1065 | struct hdmi_context *hdata = ctx_from_connector(connector); | 1065 | struct hdmi_context *hdata = ctx_from_connector(connector); |
1066 | struct edid *edid; | 1066 | struct edid *edid; |
1067 | int ret; | ||
1067 | 1068 | ||
1068 | if (!hdata->ddc_adpt) | 1069 | if (!hdata->ddc_adpt) |
1069 | return -ENODEV; | 1070 | return -ENODEV; |
@@ -1079,7 +1080,11 @@ static int hdmi_get_modes(struct drm_connector *connector) | |||
1079 | 1080 | ||
1080 | drm_mode_connector_update_edid_property(connector, edid); | 1081 | drm_mode_connector_update_edid_property(connector, edid); |
1081 | 1082 | ||
1082 | return drm_add_edid_modes(connector, edid); | 1083 | ret = drm_add_edid_modes(connector, edid); |
1084 | |||
1085 | kfree(edid); | ||
1086 | |||
1087 | return ret; | ||
1083 | } | 1088 | } |
1084 | 1089 | ||
1085 | static int hdmi_find_phy_conf(struct hdmi_context *hdata, u32 pixel_clock) | 1090 | static int hdmi_find_phy_conf(struct hdmi_context *hdata, u32 pixel_clock) |