From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC5542E0914; Sun, 1 Mar 2026 01:40:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772329240; cv=none; b=JgX6R8wce7LHqlvS3hyw0JoBAtC3ZNReQlAUg66rRLKLHr2XSHriMetmC62PgjduYVB4BkPbMj1nNKplz+AO8VcXSqkOCmUQZsCu6+fRjrdHKQVgI6wwhpUp8rg9XfBbhxJ2ck4Y/VhbUU6Vsv13shPlJz8Et+OnJvrk7iZ9I8c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772329240; c=relaxed/simple; bh=dHY+ktIAzucpDgRut7JJYCGkJHtyMxKITBb3Z/V8BLA=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=FGmqmgVghBUI0J5IXQCKwJZQmDdgrsRQMPtwPtE8KcQnPhBGnL/PYhkKjjD6eVd1aS6HkKKcCyZaGGfG8+XoPb6yVVeUEn6MzJDLlW+LM6zOaBajdt2rjZQQTOtEKqpylJRseEPNYvHvnhYLpTHzQctjabxqfe3evRXX8srJ73Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YCVcDZCT; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YCVcDZCT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1491EC19424; Sun, 1 Mar 2026 01:40:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772329239; bh=dHY+ktIAzucpDgRut7JJYCGkJHtyMxKITBb3Z/V8BLA=; h=From:To:Cc:Subject:Date:From; b=YCVcDZCT4B7diWqUoYkMnNnNGaqWTlYCs7eWa1Bf/U4AJBOuh5AMTzV6g0TK8y4y5 8592kdK8BhFB5enQ5qU9nkOx0WrSEErKrJEMJGIhBvuqKWSD6SvwM+7U43lz/tzzTh w7EgzuD7dpgxvPA+n+31hfQuL8kGNSELsQh+BdvNaQ7g4BTd/EH987hCd/tPqGS23/ UYkp5jkE+t9XRnin4nz3JLCeMKUHku8/2fZNQJw9e+dRRRYz/0HILi6WaFRjWgwmpU JehVe6IqH5lnriRrf4dp2RhMcVyg5JwdxAec5BC72sd4MtVGBFPth0kRyzw6M3ryAr VQ5AjSRBLnzcQ== From: Sasha Levin To: stable@vger.kernel.org, haoxiang_li2024@163.com Cc: Nicolas Dufresne , Hans Verkuil , linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: FAILED: Patch "media: mtk-mdp: Fix error handling in probe function" failed to apply to 6.1-stable tree Date: Sat, 28 Feb 2026 20:40:37 -0500 Message-ID: <20260301014037.1701898-1-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Hint: ignore X-stable: review Content-Transfer-Encoding: 8bit The patch below does not apply to the 6.1-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to . Thanks, Sasha ------------------ original commit in Linus's tree ------------------ >From 8a8a3232abac5b972058a5f2cb3e33199d2a8648 Mon Sep 17 00:00:00 2001 From: Haoxiang Li Date: Wed, 8 Oct 2025 16:55:03 +0800 Subject: [PATCH] media: mtk-mdp: Fix error handling in probe function Add mtk_mdp_unregister_m2m_device() on the error handling path to prevent resource leak. Add check for the return value of vpu_get_plat_device() to prevent null pointer dereference. And vpu_get_plat_device() increases the reference count of the returned platform device. Add platform_device_put() to prevent reference leak. Fixes: c8eb2d7e8202 ("[media] media: Add Mediatek MDP Driver") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li Signed-off-by: Nicolas Dufresne Signed-off-by: Hans Verkuil --- .../media/platform/mediatek/mdp/mtk_mdp_core.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/mediatek/mdp/mtk_mdp_core.c b/drivers/media/platform/mediatek/mdp/mtk_mdp_core.c index 80fdc6ff57e0e..f78fa30f18648 100644 --- a/drivers/media/platform/mediatek/mdp/mtk_mdp_core.c +++ b/drivers/media/platform/mediatek/mdp/mtk_mdp_core.c @@ -194,11 +194,17 @@ static int mtk_mdp_probe(struct platform_device *pdev) } mdp->vpu_dev = vpu_get_plat_device(pdev); + if (!mdp->vpu_dev) { + dev_err(&pdev->dev, "Failed to get vpu device\n"); + ret = -ENODEV; + goto err_vpu_get_dev; + } + ret = vpu_wdt_reg_handler(mdp->vpu_dev, mtk_mdp_reset_handler, mdp, VPU_RST_MDP); if (ret) { dev_err(&pdev->dev, "Failed to register reset handler\n"); - goto err_m2m_register; + goto err_reg_handler; } platform_set_drvdata(pdev, mdp); @@ -206,7 +212,7 @@ static int mtk_mdp_probe(struct platform_device *pdev) ret = vb2_dma_contig_set_max_seg_size(&pdev->dev, DMA_BIT_MASK(32)); if (ret) { dev_err(&pdev->dev, "Failed to set vb2 dma mag seg size\n"); - goto err_m2m_register; + goto err_reg_handler; } pm_runtime_enable(dev); @@ -214,6 +220,12 @@ static int mtk_mdp_probe(struct platform_device *pdev) return 0; +err_reg_handler: + platform_device_put(mdp->vpu_dev); + +err_vpu_get_dev: + mtk_mdp_unregister_m2m_device(mdp); + err_m2m_register: v4l2_device_unregister(&mdp->v4l2_dev); -- 2.51.0