]> 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 19:24:18 +0000 (21:24 +0200)
[ Upstream commit e2733d07fe0ef9a60a41db5f792001fcb67ddb0c ]

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: 35aac45209f4 ("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 5751e0920210bf248406f7e15e03d24f3b67190b)
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 8d13d7b26a25b2623408d86161468ade848c9bf3..2a20487effccdb45c42733d843cef42882ded6c3 100644 (file)
@@ -817,6 +817,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;
        }