Commit f708e8b4 authored by Javier Carrasco's avatar Javier Carrasco Committed by Chun-Kuang Hu
Browse files

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



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>
parent 4c932840
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -406,9 +406,11 @@ static bool mtk_drm_get_all_drm_priv(struct device *dev)
		if (temp_drm_priv->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++)