diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2016-10-26 05:05:52 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-10-26 08:41:40 -0400 |
commit | 7dfcb36a1f17e4c7c7c12b9d8a6902037c7d98dc (patch) | |
tree | 3dca2060b2ff2e8e650b6d8fe13fb20ae80d6e04 | |
parent | 87d3b6588f9bf205902868d3e5baf68e37ad4ae1 (diff) |
drm/fb-helper: Fix connector ref leak on error
We need to drop the connector references already taken when we
abort in the middle of drm_fb_helper_single_add_all_connectors()
Cc: stable@vger.kernel.org
Cc: Carlos Santa <carlos.santa@intel.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Tested-by: Carlos Santa <carlos.santa@intel.com>
Tested-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1477472755-15288-2-git-send-email-ville.syrjala@linux.intel.com
-rw-r--r-- | drivers/gpu/drm/drm_fb_helper.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index aae7df01864d..efaccc2e1b4c 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c | |||
@@ -131,7 +131,12 @@ int drm_fb_helper_single_add_all_connectors(struct drm_fb_helper *fb_helper) | |||
131 | return 0; | 131 | return 0; |
132 | fail: | 132 | fail: |
133 | for (i = 0; i < fb_helper->connector_count; i++) { | 133 | for (i = 0; i < fb_helper->connector_count; i++) { |
134 | kfree(fb_helper->connector_info[i]); | 134 | struct drm_fb_helper_connector *fb_helper_connector = |
135 | fb_helper->connector_info[i]; | ||
136 | |||
137 | drm_connector_unreference(fb_helper_connector->connector); | ||
138 | |||
139 | kfree(fb_helper_connector); | ||
135 | fb_helper->connector_info[i] = NULL; | 140 | fb_helper->connector_info[i] = NULL; |
136 | } | 141 | } |
137 | fb_helper->connector_count = 0; | 142 | fb_helper->connector_count = 0; |