]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector()
authorHangyu Hua <hbh25y@gmail.com>
Fri, 24 Jun 2022 13:04:06 +0000 (06:04 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Jul 2022 18:59:19 +0000 (20:59 +0200)
[ Upstream commit 8c295aa4a1ead01237197d1744201f38c12c8971 ]

If drm_connector_init fails, intel_connector_free will be called to take
care of proper free. So it is necessary to drop the refcount of port
before intel_connector_free.

Fixes: 1fbcc6dc7267 ("drm/i915: Handle drm-layer errors in intel_dp_add_mst_connector")
Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220624130406.17996-1-jose.souza@intel.com
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
(cherry picked from commit ed2671f953feca23c1e8dc6f7d03e420da124e7d)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/i915/display/intel_dp_mst.c

index 74d45a0eecb84e10528f0fa0e0bb16866e47716a..c59b43fb34a8cba596222c67eb9204fc1b38ee42 100644 (file)
@@ -520,6 +520,7 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo
        ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs,
                                 DRM_MODE_CONNECTOR_DisplayPort);
        if (ret) {
+               drm_dp_mst_put_port_malloc(port);
                intel_connector_free(intel_connector);
                return NULL;
        }