]> git.hungrycats.org Git - linux/commitdiff
drm/mediatek: Fix child node refcount handling in early exit
authorJavier Carrasco <javier.carrasco.cruz@gmail.com>
Fri, 11 Oct 2024 19:21:51 +0000 (21:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 Dec 2024 09:33:10 +0000 (10:33 +0100)
commit f708e8b4cfd16e5c8cd8d7fcfcb2fb2c6ed93af3 upstream.

Early exits (goto, break, return) from for_each_child_of_node() required
an explicit call to of_node_put(), which was not introduced with the
break if cnt == MAX_CRTC.

Add the missing of_node_put() before the break.

Cc: stable@vger.kernel.org
Fixes: d761b9450e31 ("drm/mediatek: Add cnt checking for coverity issue")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20241011-mtk_drm_drv_memleak-v1-1-2b40c74c8d75@gmail.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/mediatek/mtk_drm_drv.c

index ffe016d6cbcfe0f015d07de59219b626021ec7dd..600f4ccc90d378a96d46678b8184ed004270cdba 100644 (file)
@@ -378,8 +378,10 @@ static bool mtk_drm_get_all_drm_priv(struct device *dev)
                if (all_drm_priv[cnt] && all_drm_priv[cnt]->mtk_drm_bound)
                        cnt++;
 
-               if (cnt == MAX_CRTC)
+               if (cnt == MAX_CRTC) {
+                       of_node_put(node);
                        break;
+               }
        }
 
        if (drm_priv->data->mmsys_dev_num == cnt) {