Commit 7216c8bb authored by Javier Carrasco's avatar Javier Carrasco Committed by Wen Zhiwei
Browse files

drm/mediatek: Fix child node refcount handling in early exit

stable inclusion
from stable-v6.6.64
commit a3d970f106bbbf28914f6b77ac463b39e1338449
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBL4B6

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a3d970f106bbbf28914f6b77ac463b39e1338449



--------------------------------

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: d761b945 ("drm/mediatek: Add cnt checking for coverity issue")

Signed-off-by: default avatarJavier Carrasco <javier.carrasco.cruz@gmail.com>
Reviewed-by: default avatarCK Hu <ck.hu@mediatek.com>
Reviewed-by: default avatarChen-Yu Tsai <wenst@chromium.org>
Reviewed-by: default avatarAngeloGioacchino 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: default avatarChun-Kuang Hu <chunkuang.hu@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarWen Zhiwei <wenzhiwei@kylinos.cn>
parent a006805c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -378,9 +378,11 @@ 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) {
		for (i = 0; i < cnt; i++)