From nobody Thu Oct 2 00:46:04 2025 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 44FEE2FE572; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=qVwtAMVSATWxS6PyiwB1Wrj8zIE5cGTEDuVIhaK9A5NBcxCPurNnlnVJxQJjMuHymSTXcAibVa6qHxfxxOQxS88Qtcy0JCxw+9openzQqDFGTeHq/9nsXW5mSh6o7S5nTA2DBx6dSqsmMBz/kCPxIoPxgwO3MohFEC9dJJMrVkQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=Bg4I8IWbebGYccvxfcM2gwSUppOl4t3rWxBdtp5EX2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O9ooK8d6tgJbSinaXC4bm6bg3tpU7Yj5IbwhroDOY0Ue4xujlDNziyKCQAKVneGO2JchO1AoQYFZQwo4mTqzSkM6VY2WhspQBUjDLVRIt6fTLaX72KEZMWOS3dy7g9YZc0YBok3Q4kPySKm32x2DUyfWhCCekhKbGZW5ji6p/ZM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=D342v1P5; 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="D342v1P5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E36F5C4CEF5; Thu, 25 Sep 2025 12:29:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803349; bh=Bg4I8IWbebGYccvxfcM2gwSUppOl4t3rWxBdtp5EX2Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D342v1P5WEDp7o+QbJv112IaBx4ucrl/SzkxPhJN8FgrMeJxwsj9R5koHOleYHa3G 67qJZvZB0qZPStMXFvMGzek8xmu6MOD/FE57TF9XRGe92y8Dcr3GThvrBhxpN4klsC 7Eo+Swa+DsVz1EGvWpBGCDsFgQUfoObDZvSILzm6JDJT7bZlEcrmUdIbArIVOCmFgH DWBkOt1S1NuorQT/6LkIVU4O5tSUtWI5Udux6k81A4KVMQ5jQtSo7ujJXnUHrAPygp vKrFyHdv2i6P+pIBhRgW3MRX77nzFW2ArPgTBvHBvLYG+bw26g/fIOP/vHIOyv0unU sDPe2liF+Jn5A== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rS-1Atb; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 01/14] iommu/apple-dart: fix device leak on of_xlate() Date: Thu, 25 Sep 2025 14:27:43 +0200 Message-ID: <20250925122756.10910-2-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during of_xlate(). Fixes: 46d1fb072e76 ("iommu/dart: Add DART iommu driver") Cc: stable@vger.kernel.org # 5.15 Cc: Sven Peter Signed-off-by: Johan Hovold --- drivers/iommu/apple-dart.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 190f28d76615..1aa7c10262a8 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -790,6 +790,8 @@ static int apple_dart_of_xlate(struct device *dev, struct apple_dart *cfg_dart; int i, sid; =20 + put_device(&iommu_pdev->dev); + if (args->args_count !=3D 1) return -EINVAL; sid =3D args->args[0]; --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 4508B2FE574; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=JYFzixrZNSIZmkhMZ/IcwAKC3sXPggqv5HixYhwC9Ajq/za8pMofx1I/50QR0x8WsrR5mB4/05Sp03jcQ3KOIQH6f6SYfM2XmajmSd2+EGD6ZHcBsTLxbcVcrezY57/WLN2XtxNPrkTUI2V5kShmBgpyaAgHEMapt6kZ3M15qzk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=fjAZkdmrtvGiYTWNqVeTxIY0d9WM6G8evCMPW+CVzGw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lRWntzoP1FEZ0qOVIVPy0M6e8HFo2MvpJXbneecdVPw7bbBoypEDcLeTwjtZ3YSCuzNuHkzaAifbwdAX39mGJpvbMBPYhLhUxhkg3hTLaeTN7bIzIxM84szun6qrsjHvRewZtzIyjGXBiqjf3rK3F+Ghz0wZswEvyK1I862YA8A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sVSNavgk; 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="sVSNavgk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8960C4CEF7; Thu, 25 Sep 2025 12:29:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=fjAZkdmrtvGiYTWNqVeTxIY0d9WM6G8evCMPW+CVzGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sVSNavgkL7MHXwW+FVVq0YX2ksgJXZumplYeTyPCFhpc0O/ZOXbMiDpi59jATYvMH YFdwnjZrpF9wQZMlzmv7AudfVYvi5fbwd8id098jsrIKT/B0bEFIMlsT0x4L+5sUcm XpQ8DKk3hJ5OJbRDoRkwkUvXdERaPlQxX7kOEOVjiZigIdp627y1aQmBTM88Z0sWV7 m/hGHvhwHUESPeGaRiek6ZdTAKcbbzS5RLWIqInnUcpX5zg70GKaIlCb4iXsbadW1L P57LdAl346tAes0SjbpaCTOdNy62uvb0vCv3eIjOgQmV6l+MhfYU1oH0bfusRE46gb LKwBYRzTDJTnQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rU-1VHL; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Yu Kuai Subject: [PATCH 02/14] iommu/qcom: fix device leak on of_xlate() Date: Thu, 25 Sep 2025 14:27:44 +0200 Message-ID: <20250925122756.10910-3-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during of_xlate(). Note that commit e2eae09939a8 ("iommu/qcom: add missing put_device() call in qcom_iommu_of_xlate()") fixed the leak in a couple of error paths, but the reference is still leaking on success and late failures. Fixes: 0ae349a0f33f ("iommu/qcom: Add qcom_iommu") Cc: stable@vger.kernel.org # 4.14: e2eae09939a8 Cc: Rob Clark Cc: Yu Kuai Signed-off-by: Johan Hovold --- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/arm/arm-smmu/qcom_iommu.c b/drivers/iommu/arm/ar= m-smmu/qcom_iommu.c index c5be95e56031..9c1166a3af6c 100644 --- a/drivers/iommu/arm/arm-smmu/qcom_iommu.c +++ b/drivers/iommu/arm/arm-smmu/qcom_iommu.c @@ -565,14 +565,14 @@ static int qcom_iommu_of_xlate(struct device *dev, =20 qcom_iommu =3D platform_get_drvdata(iommu_pdev); =20 + put_device(&iommu_pdev->dev); + /* make sure the asid specified in dt is valid, so we don't have * to sanity check this elsewhere: */ if (WARN_ON(asid > qcom_iommu->max_asid) || - WARN_ON(qcom_iommu->ctxs[asid] =3D=3D NULL)) { - put_device(&iommu_pdev->dev); + WARN_ON(qcom_iommu->ctxs[asid] =3D=3D NULL)) return -EINVAL; - } =20 if (!dev_iommu_priv_get(dev)) { dev_iommu_priv_set(dev, qcom_iommu); @@ -581,10 +581,8 @@ static int qcom_iommu_of_xlate(struct device *dev, * multiple different iommu devices. Multiple context * banks are ok, but multiple devices are not: */ - if (WARN_ON(qcom_iommu !=3D dev_iommu_priv_get(dev))) { - put_device(&iommu_pdev->dev); + if (WARN_ON(qcom_iommu !=3D dev_iommu_priv_get(dev))) return -EINVAL; - } } =20 return iommu_fwspec_add_ids(dev, &asid, 1); --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 4518A2FE58E; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=DTMx8/FP0156vl5GXzUL3LuE7tZY48/YvpyWCfu7HjEfdtXOb0gJYwkJvEQaCSeZ2+J7RhYvMVWJAXb9Va9oRsZ6p12bh7PA9TWHGMkwV5pzKkBhxewCgqI99Wmyhr6v6uK+vhbhwwoLEbvPptOBzo5txMP3wy+oeGTMCHYDqFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=EFeF8IqHiFjm4cF4lhsLwmIKXHBiuMuBzA6dxp8TiXY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EZc/u87bn4LEknKAjOWbjwJzuSrfEk0vYyM3x18W7GfR3LSiR/VXqoiMwrC4whBoC6m/r4rPBXL1np2BNIANs8gSjMZgTiuTw7+2zkZ3hGTDiU32o3xJHdP9CbyqCGagTUH9NO/TV/kWYsSQ3SzGUWhuDDGzknvxETj9NDX+CxA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tnq1/YJe; 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="tnq1/YJe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E61BDC4AF09; Thu, 25 Sep 2025 12:29:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=EFeF8IqHiFjm4cF4lhsLwmIKXHBiuMuBzA6dxp8TiXY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tnq1/YJemsW9+a1oh4uzPAzDBcZmPdhBfpOuCx/XFqEP4KvixOqvob6MXMWiZlfQp GujdfVkD1PYQTyBDL5zImkAprmajVppTDbNz8HCYPIrDHEPQLsIyzn0H7sMjwQ55IH /yxlU0EWg10SlxjK046qUXZ+FWJLWFxZFPJTUwKq0p7qFpQOgWkZ89KR0Aa7Mk3XO/ /saQP2Q6QZzi0zCK7l050iCiomxon5vQ3jf6y5LsVN93kZ65nZGSHimlwMBbIm/l+F Uz81pA5NiOqmgiONhTZMrBOefaMGrhSlfQNjMVE9+92eNFRBzmVkXDLqXwRGFrBrxj ms4mIJm9F4IIA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rW-1plp; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 03/14] iommu/exynos: fix device leak on of_xlate() Date: Thu, 25 Sep 2025 14:27:45 +0200 Message-ID: <20250925122756.10910-4-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during of_xlate(). Fixes: aa759fd376fb ("iommu/exynos: Add callback for initializing devices f= rom device tree") Cc: stable@vger.kernel.org # 4.2 Cc: Marek Szyprowski Signed-off-by: Johan Hovold --- drivers/iommu/exynos-iommu.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index b6edd178fe25..ce9e935cb84c 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -1446,17 +1446,14 @@ static int exynos_iommu_of_xlate(struct device *dev, return -ENODEV; =20 data =3D platform_get_drvdata(sysmmu); - if (!data) { - put_device(&sysmmu->dev); + put_device(&sysmmu->dev); + if (!data) return -ENODEV; - } =20 if (!owner) { owner =3D kzalloc(sizeof(*owner), GFP_KERNEL); - if (!owner) { - put_device(&sysmmu->dev); + if (!owner) return -ENOMEM; - } =20 INIT_LIST_HEAD(&owner->controllers); mutex_init(&owner->rpm_lock); --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 875832FFFB7; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=siS02oqkte1+C7ifXjxbAO1BR93ZtWH1dI+eOi222rE9p31skwZrQyST3o6e8pv76FaWqS5LPLRVGKTibvPywll3u0hnubeX6qLSLEsOdFd01h315c5qS9MoyBXvKkJr2c4yoQVofgVFwbgXMnf2f+fq0JtyprAHlZb44hAXZjA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=mdosckf0l+HgxKirE+dl118jDU4w52EV+AHS+DL8NSQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QXtTXuBubnUyvc3Po76AHVs2MSF5XPNQpW+dT7W2lieEKKSC+XhBZKVainNUw1NXODq8He34ajmm7jxNtbSNOIT3GVxgCX1AiLXQ0LT+lP9UzHIzrqlwb9dQTKFt5BEr5qMU8bgpphNhZG3UCDoyGaAaXZjhzPDfI2gart6PRRs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DnU66YD2; 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="DnU66YD2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1710CC2BC86; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=mdosckf0l+HgxKirE+dl118jDU4w52EV+AHS+DL8NSQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DnU66YD29txcemyS+NUCwra1MvI2Sot3XYzan+5y/yi9m9pk75j8eDjYcc4rwdqQf z8VAvz1P1V708y+itzCEAx0kxV3dhmf0WQl2FF1/OmHhPhvh7VZLYopkmNQn9sAOBL x7xrVJWtnQyzqVK3q1DKxLxw1O1YbutHMnx5ldo3wIat4nemhqWx7lGA+bWXWLlBRX fx6541S0PT2MvYCHczVAVcCqbwkZAYXxDqaEG9Vdm506AfwUKhIq5lARFwcKWng7zA 5flb7itK1ffMHOOl7C8PmJzTmD+6/RltwLHCMASjbsGd+mm7OiaF3W0lCcaEnJDgO7 gDYMOJhkNQ3dw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rY-2AEB; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Magnus Damm Subject: [PATCH 04/14] iommu/ipmmu-vmsa: fix device leak on of_xlate() Date: Thu, 25 Sep 2025 14:27:46 +0200 Message-ID: <20250925122756.10910-5-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during of_xlate(). Fixes: 7b2d59611fef ("iommu/ipmmu-vmsa: Replace local utlb code with fwspec= ids") Cc: stable@vger.kernel.org # 4.14 Cc: Magnus Damm Signed-off-by: Johan Hovold --- drivers/iommu/ipmmu-vmsa.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c index ffa892f65714..02a2a55ffa0a 100644 --- a/drivers/iommu/ipmmu-vmsa.c +++ b/drivers/iommu/ipmmu-vmsa.c @@ -720,6 +720,8 @@ static int ipmmu_init_platform_device(struct device *de= v, =20 dev_iommu_priv_set(dev, platform_get_drvdata(ipmmu_pdev)); =20 + put_device(&ipmmu_pdev->dev); + return 0; } =20 --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 8761D2FFFBC; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=YH/BPUMTXZyAxjxwt28jMKB/+bke/jIPKV2YxRSMNgfF3oi8zCoGYsOjKEq2eQLHSCg9IugeyyogRTINZRyu5JoT3IjRIfgRa2ylkncKwQ0e4a9cVJBLp6XUEUHv8rUr79SJnqdCSNPnkssaYpbR5dTg4WE/WDN0UuFJRIPhCLA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=I2uuCriRflVqgvU8CtAnGXErcoFYIBf/4993czMBu4A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iEmrsrVpnX+Wj64GHZy0RV84hIypKFUfgpD2Fd4KIphF4v8r5nGFKdy0Kt5MVHRpiY0jeAF4RtWgKJSTg0g4DQYSfoMx+PzelcEmL0WCv5wgJFB8U2puqTtzE3fsi5xI3q7lNl+uiE/k3OZR6sTl6IqSqegtl8vJMUS2DfWJYVc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=csWs0Buy; 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="csWs0Buy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 40F81C19423; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=I2uuCriRflVqgvU8CtAnGXErcoFYIBf/4993czMBu4A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=csWs0BuyxNNhkbWIrSqp2//obeC2K8qMFRJN2Lw/QXKsl5DEF0ueDq3Xv1BfpR/GV hIv36MU7b9j+Cv7FnEQQZ7Jf4GmUqy2Jxamw0lE5OGpaFpfwlZAGFTG25ekancdaqo DyhjkZ/IGuEg+yoWj4kbfYsebADvpROuCFZxYwfZkmkldioLQIToGtEOqo1uAq7+h1 I7b1o4JnQGKARIpxaUZKIwAbgLtum1e2PBMZXdy5wGKvH/HKsSBClWjVbkV4JsyJ4b gjs+Ix34C0eYkJozzyZbK0lxV01xZHpWU6+YTw5trmxEbgzaIa0IcZD8QJAOZwCjIm NzYlZ8xut3viw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rb-2a5G; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 05/14] iommu/mediatek: fix device leak on of_xlate() Date: Thu, 25 Sep 2025 14:27:47 +0200 Message-ID: <20250925122756.10910-6-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during of_xlate(). Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver") Cc: stable@vger.kernel.org # 4.6 Cc: Yong Wu Signed-off-by: Johan Hovold --- drivers/iommu/mtk_iommu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index 0e0285348d2b..8d8e85186188 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -974,6 +974,8 @@ static int mtk_iommu_of_xlate(struct device *dev, return -EINVAL; =20 dev_iommu_priv_set(dev, platform_get_drvdata(m4updev)); + + put_device(&m4updev->dev); } =20 return iommu_fwspec_add_ids(dev, args->args, 1); --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 62BDE2FE595; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=duAeJLK4+q79Kt0cOGB7MABR1/Vf7Uo3RqwOg3LYW/f03n5rAZXnra66xwffA73vfDgiNz56VmJ3bq5TT6yzg076GonXUzVUj49r0Szb0WvzSFeBp6bEuob1kLk2jdBb8ZywzXdSbief02eggTdIm4M7IcGDmIvrn6/l0cwms6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=eXCIctV3kzDVCzF1mL6VjkRTk6kPB7+BQFJ+zQFThxw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fPZiH/IWQiJKyjsfyJOnPlErrv+uBpZtmeiJv8SRG1Y4iXZ1AN5V11a9O7ZU9lOYPeA1OhrvMQ9zYOe4ihn2+dgsot6I3Js537KqyytCjUrfdPdMNSzMEV0oC5mrxIyzxyrp/Qtf8VlfOM3I5sofl7+5TenlaHwF1PAdkclrBDE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=p+CSR0+c; 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="p+CSR0+c" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 176B2C2BC9E; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=eXCIctV3kzDVCzF1mL6VjkRTk6kPB7+BQFJ+zQFThxw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p+CSR0+cpGxskyZZnboW4u3s6r1U6dFLivzicNr+/4NxOYvcYuFMwEHGN+6dOe2xr cBq9S0BnzECMwWL2OjffXfDLhqndNuSWwNFKMU4CqtCFmm9bnQ4ywKA8YSkrOaGI8A BXrnheivqMJ0LCWhMnYc1Bmxc1vwEY3rlxh9fpFDRn1rZqhJgR3fPnqvoJ0vo1dAe3 cPeQjagGOr6bVrQ98K9/EjLcqV1YIcJUF9UuFI4oXLabsCRHVSmpa7hKKb68iFJH/B hDeI/gxz1akXBHAVrP/8f/WEzMZxVnpwKl2SJfvEcRw3ZYmHXM5Tn9Pa2Kflan4rVy 7fm6m3QiPmuAQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002re-30Sz; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 06/14] iommu/mediatek: fix device leaks on probe() Date: Thu, 25 Sep 2025 14:27:48 +0200 Message-ID: <20250925122756.10910-7-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the references taken to the larb devices during probe on probe failure (e.g. probe deferral) and on driver unbind. Note that commit 26593928564c ("iommu/mediatek: Add error path for loop of mm_dts_parse") fixed the leaks in a couple of error paths, but the references are still leaking on success and late failures. Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver") Cc: stable@vger.kernel.org # 4.6 Cc: Yong Wu Signed-off-by: Johan Hovold --- drivers/iommu/mtk_iommu.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index 8d8e85186188..20a5ba80f983 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -1216,13 +1216,17 @@ static int mtk_iommu_mm_dts_parse(struct device *de= v, struct component_match **m platform_device_put(plarbdev); } =20 - if (!frst_avail_smicomm_node) - return -EINVAL; + if (!frst_avail_smicomm_node) { + ret =3D -EINVAL; + goto err_larbdev_put; + } =20 pcommdev =3D of_find_device_by_node(frst_avail_smicomm_node); of_node_put(frst_avail_smicomm_node); - if (!pcommdev) - return -ENODEV; + if (!pcommdev) { + ret =3D -ENODEV; + goto err_larbdev_put; + } data->smicomm_dev =3D &pcommdev->dev; =20 link =3D device_link_add(data->smicomm_dev, dev, @@ -1230,7 +1234,8 @@ static int mtk_iommu_mm_dts_parse(struct device *dev,= struct component_match **m platform_device_put(pcommdev); if (!link) { dev_err(dev, "Unable to link %s.\n", dev_name(data->smicomm_dev)); - return -EINVAL; + ret =3D -EINVAL; + goto err_larbdev_put; } return 0; =20 @@ -1402,8 +1407,12 @@ static int mtk_iommu_probe(struct platform_device *p= dev) iommu_device_sysfs_remove(&data->iommu); out_list_del: list_del(&data->list); - if (MTK_IOMMU_IS_TYPE(data->plat_data, MTK_IOMMU_TYPE_MM)) + if (MTK_IOMMU_IS_TYPE(data->plat_data, MTK_IOMMU_TYPE_MM)) { device_link_remove(data->smicomm_dev, dev); + + for (i =3D 0; i < MTK_LARB_NR_MAX; i++) + put_device(data->larb_imu[i].dev); + } out_runtime_disable: pm_runtime_disable(dev); return ret; @@ -1423,6 +1432,9 @@ static void mtk_iommu_remove(struct platform_device *= pdev) if (MTK_IOMMU_IS_TYPE(data->plat_data, MTK_IOMMU_TYPE_MM)) { device_link_remove(data->smicomm_dev, &pdev->dev); component_master_del(&pdev->dev, &mtk_iommu_com_ops); + + for (i =3D 0; i < MTK_LARB_NR_MAX; i++) + put_device(data->larb_imu[i].dev); } pm_runtime_disable(&pdev->dev); for (i =3D 0; i < data->plat_data->banks_num; i++) { --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 8769E3002B5; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=XZHDZTxnoXKfsyOmmYRhUDuFNf+73RBbfnWBKNj6tf6fnRklMuMl0eibQSScqk+9NcpmHfSFXJA+t1+JCrH5F5wnehE7YMq/UhAGG/Hheoa9So16ZpU4QSbdCye8IOTSZcc3QlzK/vPmByGPs7QKwkuozRME/hj34cTILcJgVVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=TOL9f9t7TrdwbKha9pz6SX1lSEEfhPXvp//CHh8g1jc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bSjcVYw7Tg8NEyZJuNWl89EBEyoSNHkGiOZo+GR2c07FHqUhZZe+wOh9c8G05vgW9BnK5F9QJiE4ZQ0cvrUiJkvH+E4FqL9Fmpr69m6S5JkamKduI62kcOqDyNZrnGNOM5Z5iR9r5bwiFFlFcfRtCx+oPdu0mY8e+CSB8qlfpf0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tZZtIUhL; 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="tZZtIUhL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2939AC113D0; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=TOL9f9t7TrdwbKha9pz6SX1lSEEfhPXvp//CHh8g1jc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tZZtIUhLnYspE/6f154Up/BtAVP3b3RMx4ASntjG6zgEMhE68ehUnWswpUxi6GLYx CcEggvKKkHt/iBSOjt+kE6nCCgPyV49PBDhrEBeg5ums5xPUGjmVgGi2rNYoyRccE5 9uNoOHSBw/thYT5+pQKqiVUj3Isg4clrMqJCcS/f9REaNIb87m8RF10V/hQgK1aymN fuwD2Ttp2+xGtbpK/t4mgo+fUKEP806tz0llsK+/DcxQPtRsHICNSj/2vMGlC+R5Xa Lu/7MgKWokLob8e/W8v6JA+l8m9kRmEUdkZ1mus/m9/on4AUbxdmEYP/gkvk9RftRs TpPbU7CTVoPbQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rh-3KSM; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 07/14] iommu/mediatek: simplify dt parsing error handling Date: Thu, 25 Sep 2025 14:27:49 +0200 Message-ID: <20250925122756.10910-8-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As previously documented by commit 26593928564c ("iommu/mediatek: Add error path for loop of mm_dts_parse"), the id mapping may not be linear so the whole larb array needs to be iterated on devicetree parsing errors. Simplify the loop by iterating from index zero while dropping the redundant NULL check for consistency with later cleanups. Also add back the comment which was removed by commit 462e768b55a2 ("iommu/mediatek: Fix forever loop in error handling") to prevent anyone from trying to optimise the loop by iterating backwards from 'i'. Cc: Yong Wu Signed-off-by: Johan Hovold --- drivers/iommu/mtk_iommu.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index 20a5ba80f983..24bb8b646edc 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -1240,11 +1240,10 @@ static int mtk_iommu_mm_dts_parse(struct device *de= v, struct component_match **m return 0; =20 err_larbdev_put: - for (i =3D MTK_LARB_NR_MAX - 1; i >=3D 0; i--) { - if (!data->larb_imu[i].dev) - continue; + /* id mapping may not be linear, loop the whole array */ + for (i =3D 0; i < MTK_LARB_NR_MAX; i++) put_device(data->larb_imu[i].dev); - } + return ret; } =20 --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 8750A2FFFAD; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=QuA+LopqWrDwwfCViaeUR6zB4Jy6dhAtFbVRLYk4/f2XwXh3FunTjwuzliYugtP88FVBUi2R7WNs2g9Tf8FfATybfxlOpnKINqewYnveGFojw7lu6QclJ2Sy9Zv0nFZc/lWV024j7NT+wzlghZXmmByiGxBVat6u9Kou7wcUXoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=IQqKWSwpV19mfvxErDNJTjiXykWZqudwjNBUkZ5Ps0w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=P6bfXbh5bClpk2Wa5uBdT8a9aegBT+WUfiXBGR7tTK8hGSVxdIOUj4PoGr19Zg2XtBoc69KGVSpvDPB91tjhEZioBBr/IJoPh8edbSXWJ2n9LvhetuhQKEwIILPSxTENuFJQDnlLvLsNom6gTpkGVfiuJGdxDDON5jQ+3ksVF44= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NTHItUNy; 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="NTHItUNy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43864C19424; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=IQqKWSwpV19mfvxErDNJTjiXykWZqudwjNBUkZ5Ps0w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NTHItUNyrlmnlxGedYx1ADAJEdH+dRXb+Edphf5s/r7B/WC1qkyMdg+3RAIiej61l Q4wtgxD4p1K2Nhu6qzb9QBvmJxM9mLs5tVOU2D4UXwCXeJ1QSXQN3t/lcjVHvK4qSx UQMqCpa/yQvwWX0U12UrrH3mVe6ZrX9QraflpcpY1DxLR6cqGsjcIxdjdA64iOcjcl W9iu16gykCRCFX9aFbxuyMun5xA/FV5u8ToKz2mPpvAIPP/8K6bV6Uz7bXwJpvSVZ9 Kh1UlkjFPlzUSg0sY+bDRhPgZQK7GMzHerLx2l0LJNB5Qv/kd55vD2McQeN0vULd0Y SmM3A9w972Zrg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rk-3f4d; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Honghui Zhang Subject: [PATCH 08/14] iommu/mediatek-v1: fix device leak on probe_device() Date: Thu, 25 Sep 2025 14:27:50 +0200 Message-ID: <20250925122756.10910-9-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during probe_device(). Fixes: b17336c55d89 ("iommu/mediatek: add support for mtk iommu generation = one HW") Cc: stable@vger.kernel.org # 4.8 Cc: Honghui Zhang Signed-off-by: Johan Hovold --- drivers/iommu/mtk_iommu_v1.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c index 10cc0b1197e8..de9153c0a82f 100644 --- a/drivers/iommu/mtk_iommu_v1.c +++ b/drivers/iommu/mtk_iommu_v1.c @@ -435,6 +435,8 @@ static int mtk_iommu_v1_create_mapping(struct device *d= ev, return -EINVAL; =20 dev_iommu_priv_set(dev, platform_get_drvdata(m4updev)); + + put_device(&m4updev->dev); } =20 ret =3D iommu_fwspec_add_ids(dev, args->args, 1); --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 B8BD4301718; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=T1pUXKZP8KF+kAHDq/HJoexs0gfKvj37O9aHpsG1/Lbpo0xJOEjw5PYKgyJyVpmMMAbWksYX9OHpZe0UMm8fc2vH5qmGzCtFpXzp1dytCNIcMa8f9I3IP9jn+pYSMoBktT4OvMNkGeVIc3qCHW5rQ78csHFu/pS7o8awhQWcZ2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=jqLOzkXzV8GyacDpHN3Ijll0a2FogTVBOSmIT38pEq0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EY2nP6Mgwjujz+Xset2byNFfLoAKg5rppdiv1NWXoV9JLWyXTE3T5W2Pr3ozCIfDQGam7saJ19cekp4AjWzC8UtXUHttzKoNvL9lsvZZCwVV93Ks0i0HgXpKIXju4KPRGvTDMef4X8Ep5U3uRwrVWxRYKrV5IsMyof8MFZrGODM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iaj/Sszk; 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="iaj/Sszk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5AA49C113CF; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=jqLOzkXzV8GyacDpHN3Ijll0a2FogTVBOSmIT38pEq0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iaj/SszkRpJVA0QEGh85hCG9gXW2Z5NClefZ64xfeNId/dS3Va6R0j2yMwoNhnDMm VxfuWdZaOW9dmxMFj/hLjDFje5SaBRtxkcvp/iAUqjpqEQ3FrnUZFgSb5RfIPKEEKE Rw5eiXLu7NZooOaGyOM5a6Gu9wrMC0L0dpZkkjcsVFf8WcqqRsaU0+sGYFjhU6FaUT 8ZZYiIaGs0Pr8eL3tHTisPr5ZEkGYAHX/Dt+GrKYQfj0FNH+Drfd12R5ZM+GhiG3v+ AB6DudQ8yfR+lz3ewUfRGuYgaXAhRo1DiTN51Ikg+5Yoh5gDQw8ojDcnsD73yor9e4 dpikZ02lUinxw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5q-000000002rn-42KM; Thu, 25 Sep 2025 14:29:02 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Honghui Zhang Subject: [PATCH 09/14] iommu/mediatek-v1: fix device leaks on probe() Date: Thu, 25 Sep 2025 14:27:51 +0200 Message-ID: <20250925122756.10910-10-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the references taken to the larb devices during probe on probe failure (e.g. probe deferral) and on driver unbind. Fixes: b17336c55d89 ("iommu/mediatek: add support for mtk iommu generation = one HW") Cc: stable@vger.kernel.org # 4.8 Cc: Honghui Zhang Signed-off-by: Johan Hovold --- drivers/iommu/mtk_iommu_v1.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c index de9153c0a82f..44b965a2db92 100644 --- a/drivers/iommu/mtk_iommu_v1.c +++ b/drivers/iommu/mtk_iommu_v1.c @@ -648,8 +648,10 @@ static int mtk_iommu_v1_probe(struct platform_device *= pdev) struct platform_device *plarbdev; =20 larbnode =3D of_parse_phandle(dev->of_node, "mediatek,larbs", i); - if (!larbnode) - return -EINVAL; + if (!larbnode) { + ret =3D -EINVAL; + goto out_put_larbs; + } =20 if (!of_device_is_available(larbnode)) { of_node_put(larbnode); @@ -659,11 +661,14 @@ static int mtk_iommu_v1_probe(struct platform_device = *pdev) plarbdev =3D of_find_device_by_node(larbnode); if (!plarbdev) { of_node_put(larbnode); - return -ENODEV; + ret =3D -ENODEV; + goto out_put_larbs; } if (!plarbdev->dev.driver) { of_node_put(larbnode); - return -EPROBE_DEFER; + put_device(&plarbdev->dev); + ret =3D -EPROBE_DEFER; + goto out_put_larbs; } data->larb_imu[i].dev =3D &plarbdev->dev; =20 @@ -675,7 +680,7 @@ static int mtk_iommu_v1_probe(struct platform_device *p= dev) =20 ret =3D mtk_iommu_v1_hw_init(data); if (ret) - return ret; + goto out_put_larbs; =20 ret =3D iommu_device_sysfs_add(&data->iommu, &pdev->dev, NULL, dev_name(&pdev->dev)); @@ -697,12 +702,17 @@ static int mtk_iommu_v1_probe(struct platform_device = *pdev) iommu_device_sysfs_remove(&data->iommu); out_clk_unprepare: clk_disable_unprepare(data->bclk); +out_put_larbs: + for (i =3D 0; i < MTK_LARB_NR_MAX; i++) + put_device(data->larb_imu[i].dev); + return ret; } =20 static void mtk_iommu_v1_remove(struct platform_device *pdev) { struct mtk_iommu_v1_data *data =3D platform_get_drvdata(pdev); + int i; =20 iommu_device_sysfs_remove(&data->iommu); iommu_device_unregister(&data->iommu); @@ -710,6 +720,9 @@ static void mtk_iommu_v1_remove(struct platform_device = *pdev) clk_disable_unprepare(data->bclk); devm_free_irq(&pdev->dev, data->irq, data); component_master_del(&pdev->dev, &mtk_iommu_v1_com_ops); + + for (i =3D 0; i < MTK_LARB_NR_MAX; i++) + put_device(data->larb_imu[i].dev); } =20 static int __maybe_unused mtk_iommu_v1_suspend(struct device *dev) --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 B96BF3019AC; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=PpzWs6Ofc76GYpB0m37Ny8N+fDH0pbOh0ImCJmDdQznpULMk7ynOMQXkai6gx13RMbhd+F9YiTUqd7kN3/SjYV2hVbnGqzwyQjSeSzWmH7MAJKq1vjV1Rs2s8wpNy32Jijy1WzU1v4BEGK+XD/DOgdv3VPM/bjPxodzxxd/Kypo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=pauPkgHyC5sOmXEJMX4kk9zHj/nOugY/JrqP/IyD4H8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Pl7KG5jThICYqSkN9E/GLN2XIuFIjgn7YXWdAFwrpVDJsI58HX43AJ0vlhtRTP1QhUN+3ELYlcDpPhS3tNvRuj/4k7Ks6VSl8+Z0wFn3r9HjzsNwQCvvGI+6NbNDzcPo+oNDMshyFD7DqtdE8LJA0pjp7jZlnNcWGOKFWkD5Rdw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LI1echjO; 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="LI1echjO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67E49C2BC87; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=pauPkgHyC5sOmXEJMX4kk9zHj/nOugY/JrqP/IyD4H8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LI1echjO6hgNUDeUgFpHMCBc0z0G4ivKhf0HDMXdbC4P3tzVdrwMYaGp3CQpLEXYR yZ2kxeQzBzRj4RVr2OGIRg2Ibl8JLM9fpNFHCBlY6UBiSEYboAZpncQkfovy4RWFiy i3vDGOxR0VlpV/V8q9yxC2cmsx+zrsUnUbbm4+ktYXCUnQtLH0W2ctklVSwMET9M/l DBB89FTAhIilxaEILFHDewXnLGLdyQhlqepqRn73672vUMRqMBEH3tW2Efi69el2LB Hu4RGPg6qJYeIf9tUPN9fsl2E+c7Hc+kWhvxASn5qkEqcv2FXkbVPi36+vnWOWZ14T 5MjkXF8czRGbg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5r-000000002rr-0D7f; Thu, 25 Sep 2025 14:29:03 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 10/14] iommu/mediatek-v1: add missing larb count sanity check Date: Thu, 25 Sep 2025 14:27:52 +0200 Message-ID: <20250925122756.10910-11-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add the missing larb count sanity check to avoid writing beyond a fixed sized array in case of a malformed devicetree. Signed-off-by: Johan Hovold --- drivers/iommu/mtk_iommu_v1.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c index 44b965a2db92..55d6615a41a9 100644 --- a/drivers/iommu/mtk_iommu_v1.c +++ b/drivers/iommu/mtk_iommu_v1.c @@ -643,6 +643,9 @@ static int mtk_iommu_v1_probe(struct platform_device *p= dev) if (larb_nr < 0) return larb_nr; =20 + if (larb_nr > MTK_LARB_NR_MAX) + return -EINVAL; + for (i =3D 0; i < larb_nr; i++) { struct device_node *larbnode; struct platform_device *plarbdev; --=20 2.49.1 From nobody Thu Oct 2 00:46:04 2025 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 B848430170D; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=TEyQqJ3KmfzKvl61zGaRnyXMUOL5EinDv31VoM8u7AmG67LYvbQIsBCloAihP8A5PAe2bX7SWMS+LU1hvTZ2HkI8KJihngmf18Fi7heuI9QaUj36ytcQO6TyDx3zf3L9yccuw3bRY/E/YYJdV9OFgvjTNOYXIjIpfPI51hHxtsk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=f/1Rw/znaTZwRuQsTBACfXiJL0QSB5DXvUS+XMaPG78=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QVlviBRJQIxjezV9VoJyPjQVyyHRc4qpNzwz5erDWTdWeNkLyCxwKUGF0sWtPDLCG5/e/b8643oGtSBAFxxBbUmWa6OUfwaTFjjdHq1HBbck6ggXnHVBkljWUfjBwEpghBGsABAd8C8l0rNwTs3ov5Kg47fzaZP0FUchw2d9XFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nUnu9aK1; 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="nUnu9aK1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BFB0C116D0; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=f/1Rw/znaTZwRuQsTBACfXiJL0QSB5DXvUS+XMaPG78=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nUnu9aK1qUTu4sn4yylT/yBMTvNuUqpACxSFQRb5sEruuEQLKg4iF4DyawTTO9YwU Q9CTjWhMrxfpl5BeUDiQg13wFlDhofM4LvazAWweEe56Al8O+OnhoywECg86NZ9/9K IWT6+hnVAvoY86ZjGUSiJXw6GrwRmvjcZ2arsxDf1JLX5PQ67TU70VD4apoEv9Zs6v Sc5FZ2dOX1QgazbwU51yxhuOE5hiEdC6U4+860AOcYcwNLAa6XGmADf/qdacEpxMLm EYr9YvJ6DCbzVq8JRZZJXCVTFr+ZOrWW5jAS9vYJtRthvEMZJKmHTqf4RUH5pRayW4 cqKeCgIsqFO+w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5r-000000002ru-0ahz; Thu, 25 Sep 2025 14:29:03 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Suman Anna Subject: [PATCH 11/14] iommu/omap: fix device leaks on probe_device() Date: Thu, 25 Sep 2025 14:27:53 +0200 Message-ID: <20250925122756.10910-12-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform devices during probe_device() on errors and when the device is later released. Fixes: 9d5018deec86 ("iommu/omap: Add support to program multiple iommus") Fixes: 7d6827748d54 ("iommu/omap: Fix iommu archdata name for DT-based devi= ces") Cc: stable@vger.kernel.org # 3.18 Cc: Suman Anna Signed-off-by: Johan Hovold --- drivers/iommu/omap-iommu.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c index 6fb93927bdb9..77023d49bd24 100644 --- a/drivers/iommu/omap-iommu.c +++ b/drivers/iommu/omap-iommu.c @@ -1636,7 +1636,7 @@ static struct iommu_device *omap_iommu_probe_device(s= truct device *dev) struct platform_device *pdev; struct omap_iommu *oiommu; struct device_node *np; - int num_iommus, i; + int num_iommus, i, ret; =20 /* * Allocate the per-device iommu structure for DT-based devices. @@ -1663,22 +1663,22 @@ static struct iommu_device *omap_iommu_probe_device= (struct device *dev) for (i =3D 0, tmp =3D arch_data; i < num_iommus; i++, tmp++) { np =3D of_parse_phandle(dev->of_node, "iommus", i); if (!np) { - kfree(arch_data); - return ERR_PTR(-EINVAL); + ret =3D -EINVAL; + goto err_put_iommus; } =20 pdev =3D of_find_device_by_node(np); if (!pdev) { of_node_put(np); - kfree(arch_data); - return ERR_PTR(-ENODEV); + ret =3D -ENODEV; + goto err_put_iommus; } =20 oiommu =3D platform_get_drvdata(pdev); if (!oiommu) { of_node_put(np); - kfree(arch_data); - return ERR_PTR(-EINVAL); + ret =3D -EINVAL; + goto err_put_iommus; } =20 tmp->iommu_dev =3D oiommu; @@ -1697,17 +1697,28 @@ static struct iommu_device *omap_iommu_probe_device= (struct device *dev) oiommu =3D arch_data->iommu_dev; =20 return &oiommu->iommu; + +err_put_iommus: + for (tmp =3D arch_data; tmp->dev; tmp++) + put_device(tmp->dev); + + kfree(arch_data); + + return ERR_PTR(ret); } =20 static void omap_iommu_release_device(struct device *dev) { struct omap_iommu_arch_data *arch_data =3D dev_iommu_priv_get(dev); + struct omap_iommu_arch_data *tmp; =20 if (!dev->of_node || !arch_data) return; =20 - kfree(arch_data); + for (tmp =3D arch_data; tmp->dev; tmp++) + put_device(tmp->dev); =20 + kfree(arch_data); } =20 static int omap_iommu_of_xlate(struct device *dev, const struct of_phandle= _args *args) --=20 2.49.1 From nobody Thu Oct 2 00:46:05 2025 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 C6167302162; Thu, 25 Sep 2025 12:29:10 +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=1758803350; cv=none; b=nuOofBei/ZWV5X89FgYabhYkt+G77Jd35gGhZVNF9SToYWgkGO7dee0EUeA4Q30saP0rYK0AlR6e9/ueFjFOylUW26ad+VL8wZSTIkMrvA9YZSEJvEa1MYl7GgcE03elY9FIiU6Ut3BUGwe0/eNcmjhFw9qY9V5kHH3Tti+ad1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803350; c=relaxed/simple; bh=XymwskrCAw2efl8WxuVXKz2ffBCqFEBrU6LBAlSXMPU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VB87Vb6TqCBqHvKPduXHC2xuBIcAFCcLnNfYOO3H7UJGkNgcLr1bt3CigbHhu/h8i6EWbNndI++BMDwUpetmSmILNabLpKOij62zqw7+hwkr82nVTXdslQ+K0cgrJt2TV0QVgzaayMBLdwNNSrTS3ZR78HMEmO9ZAIWFLoOcSgE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H3M20M+S; 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="H3M20M+S" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 96EECC4CEF5; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803350; bh=XymwskrCAw2efl8WxuVXKz2ffBCqFEBrU6LBAlSXMPU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=H3M20M+Sg306uH1VfP8CrxPwdi3ELcHXhyXB45JnBn3+NKQu8Z1ECitzHBNUL+tdE 4lakkpwMQ0/AHG6Cm0lahkfYjYKVMu6kacRSxCoFKFb0NyMS3W/i7abf2V+1tJX5HQ ePz9MiPnc7KhUgIK3CRXbkBFN9qTR6KDBbMMFWhUL3U4kVWXbyBVJ5wlYRynZumc4Y p6RQ9ylaMktPNfqGIi3y16g+J1l5lJUJeiMLpbN2v6Fc38YaAVmrCQlsn0aLYXCQT4 UwZssEgtrg1BaqRi1Sc4HGgRVeTY3pxWrqRB3Y/RnRtkgAx6gQUl5/xb0EBGvO53N+ JGwyadzjAFEFw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5r-000000002rx-10qX; Thu, 25 Sep 2025 14:29:03 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 12/14] iommu/omap: simplify probe_device() error handling Date: Thu, 25 Sep 2025 14:27:54 +0200 Message-ID: <20250925122756.10910-13-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Simplify the probe_device() error handling by dropping the iommu OF node reference sooner. Signed-off-by: Johan Hovold --- drivers/iommu/omap-iommu.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c index 77023d49bd24..844def804777 100644 --- a/drivers/iommu/omap-iommu.c +++ b/drivers/iommu/omap-iommu.c @@ -1668,23 +1668,20 @@ static struct iommu_device *omap_iommu_probe_device= (struct device *dev) } =20 pdev =3D of_find_device_by_node(np); + of_node_put(np); if (!pdev) { - of_node_put(np); ret =3D -ENODEV; goto err_put_iommus; } =20 oiommu =3D platform_get_drvdata(pdev); if (!oiommu) { - of_node_put(np); ret =3D -EINVAL; goto err_put_iommus; } =20 tmp->iommu_dev =3D oiommu; tmp->dev =3D &pdev->dev; - - of_node_put(np); } =20 dev_iommu_priv_set(dev, arch_data); --=20 2.49.1 From nobody Thu Oct 2 00:46:05 2025 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 67E99304BBD; Thu, 25 Sep 2025 12:29:11 +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=1758803351; cv=none; b=n0UgEfjcSTonqhMi2qX91T6Oy91i/kqBpYQeFRcI+3QC24E3J9hvP9NsQkMZKcZ7O2UXcXJ+b0BkNc1VR4E+iLWFu+InGFVOaGKrMSY3xgByQCpJzn9VjGrQ+ePMEF32nFaDX4C0Mo+ldATCxQhvj8OBP6iMxeifQYcBJanoiKc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803351; c=relaxed/simple; bh=QWsxSeipS9iZnS1CRFwV0QyL9gk/vm3bYIKcBcyoh1M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ll9aH7qxgEwraQJasSepTHolWD+C7sUFrr7ld39xL4CaasaGcTKtx+sF/PwlVYx21YHh8O2bn57JJuU89ATrnaLU1EqsqMOQbHwTPN9PFdr709WZNuTeimoY1SMD6VtDAyDvXn1xuw4mLWZqMZYW91XD7SOt3eWwGmJTojktJWU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CvULL4O8; 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="CvULL4O8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 05CC7C113D0; Thu, 25 Sep 2025 12:29:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803351; bh=QWsxSeipS9iZnS1CRFwV0QyL9gk/vm3bYIKcBcyoh1M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CvULL4O86w/SvmNcK/TIpxkTRhiM8XbGUjUr02JFiyvHyh5FRxXccDgbu45htCx8E nUghPnqFY8favHwl/vfalePttLaNRyIKAoqYeOpl3iK4fLZnCTnmoujCzPCcq8J4HI ABXsFfvFv0T++XjLt3JNf9Q2TLRyp1NZ789UpQWn8osoIirDwtdCr+v+yL3m/6aiqB B0Z/0F4ovKMQAH0NUU6sAKkXXiL+Yt4vU25Ke12Sr+HBwHHKzqj8ZxzvzQTxyCQ9Gx myiqC8VrAmMLRd/sgzHhIg8OcgB+S9m/mmi9lJDRyIeg70f7loKPyqZvnt0zYsc2vo 9yvVcldGewJ8g== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5r-000000002s0-1RE0; Thu, 25 Sep 2025 14:29:03 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Maxime Ripard Subject: [PATCH 13/14] iommu/sun50i: fix device leak on of_xlate() Date: Thu, 25 Sep 2025 14:27:55 +0200 Message-ID: <20250925122756.10910-14-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during of_xlate(). Fixes: 4100b8c229b3 ("iommu: Add Allwinner H6 IOMMU driver") Cc: stable@vger.kernel.org # 5.8 Cc: Maxime Ripard Signed-off-by: Johan Hovold --- drivers/iommu/sun50i-iommu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c index de10b569d9a9..6306570d57db 100644 --- a/drivers/iommu/sun50i-iommu.c +++ b/drivers/iommu/sun50i-iommu.c @@ -839,6 +839,8 @@ static int sun50i_iommu_of_xlate(struct device *dev, =20 dev_iommu_priv_set(dev, platform_get_drvdata(iommu_pdev)); =20 + put_device(&iommu_pdev->dev); + return iommu_fwspec_add_ids(dev, &id, 1); } =20 --=20 2.49.1 From nobody Thu Oct 2 00:46:05 2025 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 67DBD304BB5; Thu, 25 Sep 2025 12:29:11 +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=1758803351; cv=none; b=iBxpE6dwlvylBcfr7kI+JlpLbjnCh/bv1FvevX08IvPoo1EsKar5dAaIi4ia1mfgsNL9U5MXZvErcdGfxTe2f6pLCqiWfRKcMjODm8M4yboj7hw8olRN3LAtYJJpjumJPmivEojaskjVsR1N8KU9KDQ1RIaazbA7ooVA/EfV4S8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758803351; c=relaxed/simple; bh=L5PM1JGtNBoMwBhCEkKEi183OrEgxCfculTTkWkh4Wo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tSfIfvmxDYIXvTn0hw/ShX5g2xpbZ2QxvSwt/t1GvRBAqREd6UcNKlsVVItLDQoGAiopA7nhOUHAhdkguu9oiKeFAYkG2YcT84XSRC7F+89+7vA1UMcTDQL8BbHMJ/thJdD7nW5K1RCFz5x0VLCveoaqhMJTtijYGDGEiDTQYGE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mtZZu4nz; 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="mtZZu4nz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07077C116D0; Thu, 25 Sep 2025 12:29:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1758803351; bh=L5PM1JGtNBoMwBhCEkKEi183OrEgxCfculTTkWkh4Wo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mtZZu4nzTmBz+00n+ie+LSNro7doTRLyp0zDgEUZlyv5VQO2l+MLGOPOMSmt9gB8q VjZ7M9lN2VtCJdpGzDNchHvP7VijCXVu+Yf8QZUZvdmnsdpMmj7SYpG0uU1lh6QxVG lkWAj2x/nnVg5yrTIMc39ppu+exzgL8ORruOIT2Q0CLVt7JuJtymPRcnr1eUDv17pg RjaVqN0d/yQppUNd2fNNcyqe9Zsb8TT4P/eMBUNxf69nRWH19mSR8bw/mbhJNtffl3 SzlJ5mBT53PdA6gjI90snc1VwEaFlEmt6hwqNw/PvUaI0uC2/3XbzSGHdim2pmqgFt Jez/9qb1Hkltg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v1l5r-000000002s4-1r7Y; Thu, 25 Sep 2025 14:29:03 +0200 From: Johan Hovold To: Joerg Roedel , Will Deacon Cc: Robin Murphy , Sven Peter , Janne Grunau , Rob Clark , Marek Szyprowski , Yong Wu , Matthias Brugger , AngeloGioacchino Del Regno , Chen-Yu Tsai , Thierry Reding , Krishna Reddy , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Thierry Reding Subject: [PATCH 14/14] iommu/tegra: fix device leak on probe_device() Date: Thu, 25 Sep 2025 14:27:56 +0200 Message-ID: <20250925122756.10910-15-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20250925122756.10910-1-johan@kernel.org> References: <20250925122756.10910-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Make sure to drop the reference taken to the iommu platform device when looking up its driver data during probe_device(). Fixes: 891846516317 ("memory: Add NVIDIA Tegra memory controller support") Cc: stable@vger.kernel.org # 3.19 Cc: Thierry Reding Signed-off-by: Johan Hovold --- drivers/iommu/tegra-smmu.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index 36cdd5fbab07..f6f26a072820 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c @@ -830,10 +830,9 @@ static struct tegra_smmu *tegra_smmu_find(struct devic= e_node *np) return NULL; =20 mc =3D platform_get_drvdata(pdev); - if (!mc) { - put_device(&pdev->dev); + put_device(&pdev->dev); + if (!mc) return NULL; - } =20 return mc->smmu; } --=20 2.49.1