From nobody Wed Feb 11 17:40:18 2026 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 34CF22D3EDF; Tue, 7 Oct 2025 09:44:54 +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=1759830295; cv=none; b=F1vKN/yd1/0XUKJDTQks+TuwV3LSAzAtA/YYTtGK6Gyme74qo69iKEPxoIF2OmwY0TaN2aF036Sx/ORIl1J2DScDV/9DCXHSwCIwLp+B9E1KGh8UPdNf9VPQQII0vIB4RA45mlyKnjpoEfrTo5J1rrDB6fFQTjjpPcO5FJDm4y8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=24lxMVd6ezJDeP+VC+ACkuc82KgwoZ9Q4vT6cNRNrWI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RoLc6nJ6OnzEwDN0n0sG6jZ7ppwlXG7W+AuHP00rH5p4hednSVCVjGDF1XD2GJIbzrupxTRSsDOkp5dYTpgWqrnXG/rYO/RkNYZv4rdbu6FQiwLYrDmbyCpL0bfErs0Zrn34f9qB3zKds9nnP2WKwAchkc3o+vqUHx/pyVCCQqs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LJcDcXAK; 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="LJcDcXAK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CA006C4CEF9; Tue, 7 Oct 2025 09:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830294; bh=24lxMVd6ezJDeP+VC+ACkuc82KgwoZ9Q4vT6cNRNrWI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LJcDcXAKWu2jTe3Xb44iXIun7VW4wdME/I1WEC5X07Seq4WeR2ABkUmD4SqduLyF8 0wXOpmuMSbGK/MG5r0GCh+7bAJ8o+2wCw6dJYI1ySe5MARM7a8O/gdl+VDKbwqkPYH ILyOBOQOwDIVGyxLzXuCIiAB+pyZGVspU1lYPCKDG2mK11LoKaL4GSklpnURSjnYxq XkY58/YJw/2vMG3BjfNeFgqT5xmrVZm2nbTh//IXmTgBLJrVv+2vXO+JmUol5k2jWg HeMkmk1E3fh2rH8dQnWSyLYQ7w7A05btNgpxAXntt58SLZC0/QJmGSQn+o5i6BW8iL kxGPQY4syfhcw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FY-0000000035Z-3O0C; Tue, 07 Oct 2025 11:44:52 +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 v2 01/14] iommu/apple-dart: fix device leak on of_xlate() Date: Tue, 7 Oct 2025 11:43:14 +0200 Message-ID: <20251007094327.11734-2-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 775A12D7DE0; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=hGQNifrqX1+1rkQUWZ6sx/4090TiN+dyqTCDAqvCI0ePopajhW1zGHhqK4CaoFaZuUrNEKyrlmEVYVuqnX8Gi/ZFUVHmElG78NY7yrGXk0yZ/YvVuujNq+jIPZQ4NZc/4DiLO+MStQrK4ljO68LFSvQ3BWmM7dL06YlrKN/Bmb8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=oLg6WHZ3aWKPMgrdsNiH4CTRs3dtYtjw8ulmKtz/VGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BVAn1+NZdhoBzAnTv8S7Nx8IZ/t1w3RcWAMn8m1S4mIwk8w/VgMANGp0VSDLbvp3sOxDV8Ogh0OgSzQJXKfexj/VBr8fuuG4yIPOzJuHOnOmZ3iqfSDkY/j3z/tdPIs/ixzflgljtqrci0Zq8k7DAxCCWUvxuRfMHNj5IGVoV+Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ciSifD/9; 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="ciSifD/9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ED4E8C116B1; Tue, 7 Oct 2025 09:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=oLg6WHZ3aWKPMgrdsNiH4CTRs3dtYtjw8ulmKtz/VGk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ciSifD/9G8aluNdrww4LNEUCsP5f9eQRfK3QVMAgfFnezv2XQoNKFmSjwXebS/5pl 2R/DlOzFsNOXTGU0UiB6Iu13yGSslCcQl3GKl4eRwkGOTV4/VEk2H6VoDoiwmyqekk /xQZ5cw8uPbax+Wz1WPsdEH6HEu3SZ1uN6xt49+We7zL89RmB+RToBVUoKGGSi0zs0 LQM3sd6Tg57caIEeqEOAIcFlnb5epKc3BpbZ009TkeRIEm6klEXamMj+ljMZbeCL2C J47u0No/mdcinicIk1lWCRTCs1wM/nLDBBIk2y2YVzj7HA1IUc3fUHezuZD+OV80tZ Oop73befgmkEw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FY-0000000035b-3oSY; Tue, 07 Oct 2025 11:44:52 +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 v2 02/14] iommu/qcom: fix device leak on of_xlate() Date: Tue, 7 Oct 2025 11:43:15 +0200 Message-ID: <20251007094327.11734-3-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 4360F2D6E51; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=f+cSq8Fciu59Xj1wWSI6bcP5b2IAk2Wokr3nv+pE043bfNdogF+BuefinVj2gTW2fov66YQWnA3CEPv5D7CoebEoW3zPqJXoUKAdW0p1MEU+vFtyMA3rjsAvszn2p6mipD1pS+vzZfLNHcqP1mf1NzTO7/ay0u0IU98LvLV4a7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=/ZOvDlaE5co2FsuffrPvaCXpclhBsGaMcrTzFAqteP8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XPTpWSbcuyPBx1jbW11veYiFtKD6irnT9iJ/I7KdoP0ksiFCCJu5QJ4b0TKCWvlP9Gco0cNbHS8g4bcSnPA3UKyznr9wCi26ZpodGnaXr0O8nxI008aokzDByXzVCJxbl7uiOxRtuAkjBe37guRVpfqODEbY+v0efB4UDNAQY80= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RSVV7yr+; 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="RSVV7yr+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFD0AC19421; Tue, 7 Oct 2025 09:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=/ZOvDlaE5co2FsuffrPvaCXpclhBsGaMcrTzFAqteP8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RSVV7yr+5OVgnHY6oNeJOOgE0BC9uK4Osp/Q67gwk4md/e4XtHt+nCmFKyHbdVBQX 4k9u+lGgb/xcNve564U1DUABJd8gsM+bfq0AIHI/s4P77imstehCxIjddEk2EvzbBI EW8gg5NGGaVX8Df8Ej66Rvt9KJMHGd0xdbhK3Kr1+R+AV+lNhsVlxrnMFD6f3udobc KP3oZq0t7L7QrCENHji37nwv6rXBhSUqaoZXL1fyy1LnVEQyEdgVh/uqxDt5coEyLZ 908aPS4zWfG1ZuGbBo4zBbD+wm8dLEuNMGpDxFpqX0V+rniBXPVc2D4sTAMzOuxHmN WwyON/5bk3VYw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FY-0000000035f-48dj; Tue, 07 Oct 2025 11:44:53 +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 v2 03/14] iommu/exynos: fix device leak on of_xlate() Date: Tue, 7 Oct 2025 11:43:16 +0200 Message-ID: <20251007094327.11734-4-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 1a26044954a6 ("iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()") fixed the leak in a couple of error paths, but the reference is still leaking on success. Fixes: aa759fd376fb ("iommu/exynos: Add callback for initializing devices f= rom device tree") Cc: stable@vger.kernel.org # 4.2: 1a26044954a6 Cc: Marek Szyprowski Cc: Yu Kuai Acked-by: Robin Murphy Signed-off-by: Johan Hovold Acked-by: Marek Szyprowski --- 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 Wed Feb 11 17:40:18 2026 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 34C8025A324; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=aNegn6uwTa5/n7u3IPOfLFKJGx+5Vv5482p0RAa5yO1HyrLYjJNQJBzJHYqJeBuDeAxC0QB17FJ+/DAWOAVG/4T2p4F3Vb+XxsOPWVray4Zy/F+uSZHFPgWnLakdWqNNVEnemz1yki4ND0j/pGYqcS/gw3V8/s3DBe/EqPKyx5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=VGVPMHZfJFWJ065a5fqtHiZF8kLqRFAbyAg8TzOuAcA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mFfRhQhy0klATMG96YAlYzzBy34cYvhy6v6RHdA6OANr+hr4GsfrrYkIf91ty/3nPSNVNggJ011CDAePzCuUJab/rhd2Mj3uq4dDHBK9od4JK8Tako2VU991K+UkFaZMcF5F8pyeBcBsAnAPGAnkAhKUBqcR3ntaLXoMUQ7A800= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=f5m4il7b; 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="f5m4il7b" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEBCFC116D0; Tue, 7 Oct 2025 09:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830294; bh=VGVPMHZfJFWJ065a5fqtHiZF8kLqRFAbyAg8TzOuAcA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f5m4il7bogse4bk0D9jOCOcDlKkY34svP9eZdZEjow6BRd12AHNkhgt9Ie/PRBVKB 63nfTkVz3brZTZ8zihJ4blaGhOE6vH9lRgr7LvBI8y2UrH5/AFCsXp1T0x55Y5wpQR K+JVoO6ZgTT/EWmXZZYoDBgRv3xGovAs03AqKTMAfd4C09La8fwlMC176jVJu8fT66 5FNUZOqy8OkZUdsE0Ksxlab+/II6AvFXGjg9zsi1gyJK0Bf31tZoXkIiJZo+3zdLsa 2P2C6yTTRT8gAwDgpaV7Bbm7Kro+uABu6w6DcHCGxEoH7AEDm1/5tqjV9ApkgkmYYw AnnWaoEKo1yYg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-0000000035h-0Jx1; Tue, 07 Oct 2025 11:44:53 +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 v2 04/14] iommu/ipmmu-vmsa: fix device leak on of_xlate() Date: Tue, 7 Oct 2025 11:43:17 +0200 Message-ID: <20251007094327.11734-5-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 4359B2D663B; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=uj1x6/xE8uOrqY9gkdVZWS88h9SgYkoJaXtlLOtTb4YSRHaJQgpo5VLB/ieYz59xWrb7bK8Af4imBxrVicIGxm4P0AaFNMTExCxKeguePcEKEmR+EXPl3HXIb4M+WU+OizSx2s9ISyo8umeskTNrxFTAG1afedZKs5Y++/rJWIA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=vQEMyEQQksR3qwPtj8Vyd1cNOXWpewMJ0uOswSl/Zrw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fmBqKlNpTtlI4L8+w15FGjBH5qpKNAWLXcmJnCnuToxxRUybyo9Hi4N1Qot0ZNIQf3y+HBRLM9sN7t1O69CWc3HAEuEa5RRpmoZLfhJ+LCTHuPatbqk6M0I5qP7ZicVN75oTZhaLcYffP1qh73wyrHtbVEU+daSEyiEVlVOZSX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=N83hPwoc; 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="N83hPwoc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8F78C4AF0C; Tue, 7 Oct 2025 09:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=vQEMyEQQksR3qwPtj8Vyd1cNOXWpewMJ0uOswSl/Zrw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=N83hPwocVOxh8v8DBYiBp8WamYCYfOeOlrtk+zBoj54sNL8yTlm7O8w6XO2x32YV/ ACKkm5Nt4c/6WJC48zBr5UpA6L+fT5DGbCdgDkO94KT6v00aq49AecDl4/DVWI3aiU stzYehi2bDG++qAGGZBcU9rDs7934GZmEtYP9uM78mV77/64nsoUBihJvMZ3ecvial +o5wETJiy8NEfBgG/ve6Lu/o/FtkeaPW8yegfSvGb4z88O+Q4rcdtJHr0PxNyX6nrK kMC4UlGEx39SQZFTzB2SOrQK4mQKQEG+E3FfgCEqnmbq/NXHSPJi81dd31hDFFiYVl KBErdTq1KF5SQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-0000000035k-0kGT; Tue, 07 Oct 2025 11:44:53 +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 v2 05/14] iommu/mediatek: fix device leak on of_xlate() Date: Tue, 7 Oct 2025 11:43:18 +0200 Message-ID: <20251007094327.11734-6-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy Signed-off-by: Johan Hovold Reviewed-by: Yong Wu --- 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 Wed Feb 11 17:40:18 2026 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 775082D7DDB; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=mAR6d8Yg0xC1YVHBJPRvvz+3KYXLSW5AeBXTyEsk0m4vM7lfjqY0g+XUElDoXUq7XCZD2lWNGqsdH7y4hJWGuiLgw4hXUlg23k118mBJRv0eI5lQXBb39DCrrY/un2spgmcLJjZff4HZfUdEO6rlxeBB4foxcWbcNp9bAAYLd8I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=YgTtXA9dF7mB20DwiqCqHja/k4JWmcrR69fNJ7Tlp6w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g4jmgw4XJTzuX7FqLMrmy6iGiXzIih6Z6Eo+cdPlTdM4sKsvx2XV8y6nPmWrl8ewNKCxboUYlQO/khoqCru4OgdE0yaxkEBEl8D46QgDRE+0K5rnemDCP1bUGJoRubCJiIH8HVVaFGuug+Yf/ot28eI7OKTOebVrjtUVT/n8N24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HLOJe5aH; 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="HLOJe5aH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11109C4CEFE; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=YgTtXA9dF7mB20DwiqCqHja/k4JWmcrR69fNJ7Tlp6w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HLOJe5aHGUCBlnjnVURD939HWlQk8oRakwSok+PsgoJKLrodBiw3GpuUdLskwSXd/ isE977if6ZEexV4rrhKJ3YH3gQAWLjiUdxbkt9zD0q658u1wfwIPx70ScapXEoHMoh r5PwYe2RRCzxCr2zqH/usPMHrspO7BPo8Vp1AgVEz2QzTQZuiFRoD0Si1N74wvaJi9 kq3oEBWoUq0w1XNIjXNR8BCXZ9SJkqueo1EsepvviNfBO9ErLgMykNLOGAP3ftRY2M BEGHcj+yPc3WG3uptmEaZk1x8sh01qXVdiOGzd4tim6w21YGR1KPPIMqCc4+/C4s1e WzBEq7o/1ZVxQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-0000000035n-1AML; Tue, 07 Oct 2025 11:44:53 +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 v2 06/14] iommu/mediatek: fix device leaks on probe() Date: Tue, 7 Oct 2025 11:43:19 +0200 Message-ID: <20251007094327.11734-7-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 61C422D7DC5; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=CgtULWbEy0kNejyenkqH2E02EQ3R+mBuqdsMW3NBrZtr8eyLyJDOYkHXahTIcHt+50W+v17HxyCGEfflYlbs1jkLvnqXnGhHC4/o1WDVavai8u8FsCq8SWP2iH6eiJzU0H3AHYFrbzDFeI9W0JmhQ/teVKxh0lAyY9ZxhUbcIR0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=3YsUGHE8p+SGmBLxNad+cDIngJ/4w2kWdXR7zcSNBhM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bLdJ438efBJzzseewKbwSZtqTpa7VZw9LfCRywlBd9VEAd2smCfksRvnDtV6wTV+9Uwlx7oIA2O4Pd5TdS4FHG7wKZvCAecLY2Hgm8o2tUUUb7srEw7RLC+ZD9WZeRSAU2fubLASjj6RT48vO/SkD3z72AFA7fUZ2+CGI8pVznM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Lz4A46Ts; 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="Lz4A46Ts" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1ACC1C4AF0F; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=3YsUGHE8p+SGmBLxNad+cDIngJ/4w2kWdXR7zcSNBhM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Lz4A46TspwgvM2rCHwq6tFgYs9Kq1WQFGtkhQIccVj1T+5xFX6bdYyvNboSJqbcZa oPJVSKo8CpPlt8wMbluFLWh+QlxnIHtqedpiYDQ9YqAnjr8Vn1Cb196pi0e/Scv93n okPytWwUkzlUNXd56vT1OS8K5uG2zLeVCh+cMEEl0e3FlXNWPt7oE1fcFnQTUVzGpH 91oYJbN4jR+KZG5Su2wLscKOEIAQOVz6H5qTrIuNNoe3iTDX7xnQXX81ypnvhZA8h3 X0wIQAGoeHlvzWnRMIiB75ZMbKyofcPEYwPz8DH7Wb4vXp3KOaJKCvL/zs7h35Agkx 8/5wnTtWQLPgw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-0000000035q-1aMt; Tue, 07 Oct 2025 11:44:53 +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 v2 07/14] iommu/mediatek: simplify dt parsing error handling Date: Tue, 7 Oct 2025 11:43:20 +0200 Message-ID: <20251007094327.11734-8-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 E2B962D8799; Tue, 7 Oct 2025 09:44:55 +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=1759830296; cv=none; b=YP5X3NZWrg5GL2xNweUg/r4PZ/Bk+adyK4YH0Fq2e+RB3hHkUk5uw2XqtVn9Uhfl2ulRENRjQ59mhl+x0+qcc0pz8P6BoCfK8n9swX/2OTe5ArNiXS6gcZDJ+/imRt3/JrYUHUYJM76d61V8ReRYE1uhn+qOco9dOvzIRj0tyqI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830296; c=relaxed/simple; bh=sHAs1h2nj+F5QylxrrHzaX1LNy9B3/05QnbSzhIUHoE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i5wTz6M8/bW0+THUfx8jsqdNwzc1X8o2+Wu4wX5I/tIy94xZVnOvx8bBx0xWv1Gw0xtcOzcbauupQC6OTxaQ3pJX4TvmqZRr2eHqE1W6OCC71hQQ+RrDjUQiyKnLMSewi4MYyrB7Q6bKxtf0OmFTANZaznIaIDhuFd6I1ChlhsY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hGobKLQ8; 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="hGobKLQ8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6F881C4CEF9; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=sHAs1h2nj+F5QylxrrHzaX1LNy9B3/05QnbSzhIUHoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hGobKLQ8yajJbGwbnsBI/ukgknoOyJO6eaw4Acko2LP+OFrp9uk67LgL64U+qa0lF gc4URbPn+TYv3ocJqp8Vpha6Zds1a9LPKy0zO4Sv5FM4AUflQt9HM4YeDsMDWD+Q/Q OgPsCr8iEzd6ObFySWekM0kuy6D8LQTyS5Z6iYEgFD43UHVcPjlt/dYZbjW6NyANTM MUTfs64tBKg2vq7V/TG9Z+RAZNS8j32jJ3YCKYRGwbuOBZZ5+0a/j1WZJ/vbGu7iJq s5ADMtrOLJz+nCbu/A/5Kse6nncaVY3ciRbDhgbqQ1d5n41IXlmT9CTkT5yRWjHlBG 1zDyZzEX8aW/g== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-0000000035t-212c; Tue, 07 Oct 2025 11:44:53 +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 v2 08/14] iommu/mediatek-v1: fix device leak on probe_device() Date: Tue, 7 Oct 2025 11:43:21 +0200 Message-ID: <20251007094327.11734-9-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy Signed-off-by: Johan Hovold Reviewed-by: Yong Wu --- 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 Wed Feb 11 17:40:18 2026 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 CED722D8776; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=MPQ8I5EXBc3JsYaEk/8bxPZ9DS9g1a7MvQ43AkrGYDkuBQo5+HFEHCuxpas3yP3hTCE9pn1PSonXU1xBOKnhM2BODGQ0Q8VE6sAWYaiX1RipaGpUAuL1YLvuSv/eFpV0xYdUXzJ/3M/I56dP6AICwnK+LFWMGpL+LhMZXNIILjQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=4nJz45e/2tb3rsqBi1FGg7jxKLaVlWYuDQzcHcXUw2U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M3Tfy12uxELNKg257ITZAqy1qIN3X38CnzHPkbzyMIK1Ev6ZdcHo87xcShUbU/OMP/OlWaGFjOyCFeNA1KFshdVz81giCBTS9g6YJcUtLWo2mtvAw38lO10/HQm0JmxZFkHh7aXKCjLRkrMiswQzl43I4NxwVn6NGiFRzdtvM/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eHhk8Cpr; 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="eHhk8Cpr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 675CBC4CEF1; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=4nJz45e/2tb3rsqBi1FGg7jxKLaVlWYuDQzcHcXUw2U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eHhk8CprHm4Zq8XVigo7YVWfpW64B3aOrM93rN/xIlsLHDlmYw+RcU9tZxhwUEWSo cYL7qpGehrNBew3DPPvIgOS2V+xwyOjvcQQiSjZE7I8JzJSnyq4s8Uh2ukZr4khlXI arWHKEL+cNX2WczhyRpARCJ38ZpkHgQejONxDMkiw1GQzbvwxsQgWRjmByyUq8u2wx mTOBDWldAI1IupHXgWGHXmwoNNhLOPsdFjgm/frHAX3zD+Hvu44DpvS6FrDz2li8kG e0XVpJvK456BCXPC/1fTgrPJdatKLCyvBsXMbCrHQ468P2H4GWKwXUBfrvlGa+PrNo sie/ERHLidkLg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-0000000035x-2QXD; Tue, 07 Oct 2025 11:44:53 +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 v2 09/14] iommu/mediatek-v1: fix device leaks on probe() Date: Tue, 7 Oct 2025 11:43:22 +0200 Message-ID: <20251007094327.11734-10-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 8C54D2D7DE1; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=W3RmJ0MdALSMQQAml37WDJRIzUXTE2aDiIUd0ybIkeK9RDpS5GucJZA5nHQqa1ckPI2Af+ZyB8sV++9MaZ8AQDfEBr1A7EisoF4oeXx16KtGZ/Wd3gJ2UTHsQgvm6CtO6RqJVh3ujVIwjhW+i5UKZWYO995rFocIDNKeH113hRw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=9ziipJ8QVhUYl7FNrii/r8Of1QWBSla3JzJXj5jEDSw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f9cENwavobUBYOAcHW4UsmvqZfTB4EahSQKTsAOtrZXbYnWi61E1V7FFvSZbH4gStfjTYQkA3L8a44s1jniKch/wZtpizADUXqLn0lQWvJkVycAYs8YbwH/jZ8HrCgvmIyBg2BEzknQwWqOuExMmo2JgcbmCWGLhD/MTqxdRjTM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Seh52KZa; 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="Seh52KZa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A15BC113D0; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=9ziipJ8QVhUYl7FNrii/r8Of1QWBSla3JzJXj5jEDSw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Seh52KZapGgBNv6ZL64OcFd52RIRCpmMwMMXK5xKW5E2BXJvTmqAPm3oOgO+62FuM zMenW9mjUVCzNaMreSsf3ziEiihxrE3PGW24UzqdNQuFY8q4f8StFFll/UoqfGt3UR Bcg5PapxghkaLj47JFwxkPItBrMvmD8DxJyGZkwetrBsCMNyTNNQmx59FJiykSuzFR x9XzDw17QU3/vk9sU4Sf+w6ckhpY0+EJX+ZTkUC0TD71D9qk/4zSZ1Wdx2Ze8aJot3 hZyigUZTiQ7+ygIcZe7tU/zTLf9wUwnYIFB40i5TdPn9ZeqD4GlrEK/ygMl+v2rzAi Nhn+fzizPzJNA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-00000000360-2r37; Tue, 07 Oct 2025 11:44:53 +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 v2 10/14] iommu/mediatek-v1: add missing larb count sanity check Date: Tue, 7 Oct 2025 11:43:23 +0200 Message-ID: <20251007094327.11734-11-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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. Acked-by: Robin Murphy Signed-off-by: Johan Hovold Reviewed-by: Yong Wu --- 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 Wed Feb 11 17:40:18 2026 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 C5DEF2D8771; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=cmy/j5aOpXjAA6BFWo+0WJNA3eRZysrlJhV5brZZJNuVhA3Y9D+FfPEWipaQb+SHAuAXx7A28oZMDsLSP1pT09hRJDXw8ZiGsshEU8z2hyB1RqExw/Lo1sV4zP8mu9TssTDt7S8nYFuZUlQK2Z5tOX3kxymyV4OUdrurp+u2hkU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=9esiiaNsIjLJT9q+6kigJzz3FXDUJEcBF8kGxPcFTEY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=toRehJk429IA3SzJR9BdUtYhof5zjs+7ZXRCnUH1tknhdRoVvAwIDFf93ElzmH/GOPzsf72j+4HO3vmgqE6jmyz9Kvv0y3/c5xm1fP3K9URtM9Ge9PqqlwaOEiNrN+ktQ0LEg4zEb7sek8DfLyKZv7BcCllOYa9tsBDxmQ1bAew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=b5TWRQM/; 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="b5TWRQM/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 88176C4AF0B; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=9esiiaNsIjLJT9q+6kigJzz3FXDUJEcBF8kGxPcFTEY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b5TWRQM/fHVWyhLveNUH9G4xZYVgaU+KEcUXv9cLFEtknQuEiYqcCPDaL2tRVLp6P eEC/TQvK+e1fGy9eUx/21vIZG130lOcDHG5wIUQPg5zs57fCM0lBv6gcY6LdKcLAxP 6lSkGSi091k8415SKN0WK/clAhuXw/L9PIGs+bMKnjmHUGHSB6geUTpeyJrolZPD+3 RqjCsoYhgmMqhFlrpoY34dbrCPKltuV9YIkdufB4pcQvv5KnqbXQ/wTysPZ5+z4xMC xCg4/FTg2byz7vadt5x8jU2vkU+QTHW/BGwnz+IVYFdSPOiwxGg+Zp7WpQ15uONK9W IM8UUyIHjtP8Q== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-00000000363-3BhL; Tue, 07 Oct 2025 11:44:53 +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 v2 11/14] iommu/omap: fix device leaks on probe_device() Date: Tue, 7 Oct 2025 11:43:24 +0200 Message-ID: <20251007094327.11734-12-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 iommu platform devices when looking up their driver data during probe_device(). Note that the arch data device pointer added by commit 604629bcb505 ("iommu/omap: add support for late attachment of iommu devices") has never been used. Remove it to underline that the references are not needed. 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 Acked-by: Robin Murphy Signed-off-by: Johan Hovold --- drivers/iommu/omap-iommu.c | 2 +- drivers/iommu/omap-iommu.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c index 6fb93927bdb9..b87ce129fb1f 100644 --- a/drivers/iommu/omap-iommu.c +++ b/drivers/iommu/omap-iommu.c @@ -1675,6 +1675,7 @@ static struct iommu_device *omap_iommu_probe_device(s= truct device *dev) } =20 oiommu =3D platform_get_drvdata(pdev); + put_device(&pdev->dev); if (!oiommu) { of_node_put(np); kfree(arch_data); @@ -1682,7 +1683,6 @@ static struct iommu_device *omap_iommu_probe_device(s= truct device *dev) } =20 tmp->iommu_dev =3D oiommu; - tmp->dev =3D &pdev->dev; =20 of_node_put(np); } diff --git a/drivers/iommu/omap-iommu.h b/drivers/iommu/omap-iommu.h index 27697109ec79..50b39be61abc 100644 --- a/drivers/iommu/omap-iommu.h +++ b/drivers/iommu/omap-iommu.h @@ -88,7 +88,6 @@ struct omap_iommu { /** * struct omap_iommu_arch_data - omap iommu private data * @iommu_dev: handle of the OMAP iommu device - * @dev: handle of the iommu device * * This is an omap iommu private data object, which binds an iommu user * to its iommu device. This object should be placed at the iommu user's @@ -97,7 +96,6 @@ struct omap_iommu { */ struct omap_iommu_arch_data { struct omap_iommu *iommu_dev; - struct device *dev; }; =20 struct cr_regs { --=20 2.49.1 From nobody Wed Feb 11 17:40:18 2026 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 C3C002D876A; Tue, 7 Oct 2025 09:44:55 +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=1759830295; cv=none; b=QDL04w5FBjfR72XojIbzjsoVWTtY2F8wEVA13cIoKV8hC1IE6T89Y5VOiqAUvYQDkHDTLbHWgwz9sF/aZVuRZ7eQ6EgABb0gXoAET2HTmnWNY531k6jJ7cEPSgnHweleG8AYU+3ujAf0/hdWjj6ptrujqi/orzJzGxQn3o0q4/c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830295; c=relaxed/simple; bh=8MwwusWhD3Nfmd2dXw3awuzZtltqINN/xlTNNCP9H5c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=enshbNKObTS8vCeWp8UEcVdd86eHp4faWr7yS96aqZqIoa7J0QKs1bIS2xZaOdUSQmd3pyNxQJe5NPBRiJ+A+4svndW3JA3TUa3bRe+YhMm6naPVRXVq24VyeZ9XvnVxiieOwchYlD9Za4HenBD9oaah170VdzQRXnXOwKn3JAc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aY21KRx5; 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="aY21KRx5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 863F9C16AAE; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=8MwwusWhD3Nfmd2dXw3awuzZtltqINN/xlTNNCP9H5c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aY21KRx58O5U13wwmk6sv9UeD9mKwuu3XBQorhZYo0IZC4Piedvkau94ZpgNos7fy FPfwDptQS+RJ3jfvclgEOA+vjKiNgxjbfsmVrWeg8w+vgDz2SVdFEXjSkVGrKBTrYr nHLA/V/+i4LGdRwW2zjlNl+wK66vqQWsfnkzjh2jzdbqmx1+CCwzVamzbTpjIlYgUs hShbmerU9ONo47h5ZkLnt1gvr0GgCI8Qd4DF7TCXqOVOUC+J5aK+3hk6gszpr6VDS+ dQfy4yUCAsdx0Ncooeo4o8e2met6p3g3RfznvC2R7DZeQLQnfNaHloraXOybI9ZvrR U4164Qp/sIkmg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-00000000365-3VfD; Tue, 07 Oct 2025 11:44:53 +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 v2 12/14] iommu/omap: simplify probe_device() error handling Date: Tue, 7 Oct 2025 11:43:25 +0200 Message-ID: <20251007094327.11734-13-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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. Acked-by: Robin Murphy 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 b87ce129fb1f..2e161d174b5a 100644 --- a/drivers/iommu/omap-iommu.c +++ b/drivers/iommu/omap-iommu.c @@ -1668,8 +1668,8 @@ static struct iommu_device *omap_iommu_probe_device(s= truct device *dev) } =20 pdev =3D of_find_device_by_node(np); + of_node_put(np); if (!pdev) { - of_node_put(np); kfree(arch_data); return ERR_PTR(-ENODEV); } @@ -1677,14 +1677,11 @@ static struct iommu_device *omap_iommu_probe_device= (struct device *dev) oiommu =3D platform_get_drvdata(pdev); put_device(&pdev->dev); if (!oiommu) { - of_node_put(np); kfree(arch_data); return ERR_PTR(-EINVAL); } =20 tmp->iommu_dev =3D oiommu; - - of_node_put(np); } =20 dev_iommu_priv_set(dev, arch_data); --=20 2.49.1 From nobody Wed Feb 11 17:40:18 2026 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 DED3C2D8789; Tue, 7 Oct 2025 09:44:55 +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=1759830296; cv=none; b=AZ1sVpWnHQO4KjZdgaSNvsGzTB7odRy03h8+UQomo21CUHYzUTg54Vn3jfPurAFT9BRuM0U1DbcckQxDYmfAGw5R5uBR+yfG8HiF1JJJveuwlYHJBJtIUeLkS5FrqizkkdC1r5UdgLED3ZShp5xe4acdAetW9/lgc6/GxM8/PDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830296; c=relaxed/simple; bh=XGze0MX6pPcBSBg10ExvQZidlcuv2+y5+RAOY6fdhVM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jYzEKArDLW+B6nY1VZ9eK2V+GPuMllAkThjyik+aOSDgQLB8sC+dIu9kF8C1D6m+hUr8ka5wMbIzpiVUfq9aupeVVIAvtdUw4auaSni9Z9Z3xXMzUtpOdall9F5w4+2K/zmUOyTBzPUaUkYdV+6rQafNuiuqjZr1qymrEH0BjJM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=vHupJOz9; 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="vHupJOz9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AEBB5C4AF0D; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830295; bh=XGze0MX6pPcBSBg10ExvQZidlcuv2+y5+RAOY6fdhVM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vHupJOz9DB60p6nlsJmul5k+PmHQF2uqT7w8MOSPUSAvTPbOTnu+ME+eh8CHWcjMT wm5fsCTGtJs9qUJAs5Mwp02ru4hw3mZS98SDpepcRH0rcsO1OdAJ4axx7HpECWQbd2 jdiQULvwXTBy/bv1D9z8wDSWhF2ju7rikZAcnBDqUR1KTZIX4WHeDADmvtioVCr55L 1sKcmkjsm68XDFv/Mw9FQXP6cwNvZKsUfTFH/Evo77t0iXpvdfWU/hrnsKPzlVJcwN REM9+7VszFjm2WfuM0dCaxhEL1mooWess2tlBo4lJwhkexAGPP/HsdF6/Zmgo/n+Kk imB0viAR4lxiA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64FZ-00000000368-3q0p; Tue, 07 Oct 2025 11:44:53 +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 v2 13/14] iommu/sun50i: fix device leak on of_xlate() Date: Tue, 7 Oct 2025 11:43:26 +0200 Message-ID: <20251007094327.11734-14-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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 Acked-by: Robin Murphy 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 Wed Feb 11 17:40:18 2026 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 256082D9493; Tue, 7 Oct 2025 09:44:56 +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=1759830296; cv=none; b=fsx47jKJ6e3AkoYfV6zvod5KFRA5cHSs6HBr8eAT3Souj9eVaUuY9GuOp0/DfHgQRSO00YUPeWkMJmwyYSqFoOAo76ZETvWp8nKS5grB8XRjpD0I/MnlmRJXsxr4JyAv/hKV+UO6SI6rSOzD/zLSSkLgeawlJPJd5UoMIyoLIoo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759830296; c=relaxed/simple; bh=3CYEDmeqpw0NtuUPVCDXZwzN28sdvtl+wEi62S8DILA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qPd1Zj/H93K+a6kMw66a2YcnrNuFXe0Y2YXSFt1YPUmIQVzfrtVy2lKZy9ZO3Y8dfXum83nAPx3MpbJblIsUn6rRhYoj1+eifCgSInnnDQU1G3uv72ihrkWjI3axo6xHQiPoyuZXMbVvQ8JkXjQeJM7TPJ+u/BHMoMAvlTVkyz4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hjUrxmX9; 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="hjUrxmX9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D61C1C4AF19; Tue, 7 Oct 2025 09:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759830296; bh=3CYEDmeqpw0NtuUPVCDXZwzN28sdvtl+wEi62S8DILA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hjUrxmX9BEsptsgn9iQczjrgFxbc8Bv4uZWbEkjQcsAviPpwLd52CLgzQOrKfCVKn MAOit3Foy97gHXz0CPFk8LnLvlM10mGyDaFVnHCVOsEQbnAWGsfXIuzl5/pTzZhSr+ pfqE521Ra3KZui+LloInVmdIFJExMF+7WEKaPvmIu5iRKeQ6yrtfAlBJO8tkVRD397 m/MKMTUXAQ0Ie76RFCbCt3UhdjVMvn+99yqlCLhc0jsQX9gGvqyvBXmoza1pEFWw1W IsUbudLdors9FZZcaT4cTftE2iSM2d3BgWAou9E38DX43gMyD0krWMY0y5sSD1Qkzc H/3z3VfWTmyHg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1v64Fa-0000000036B-049n; Tue, 07 Oct 2025 11:44:54 +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 , Miaoqian Lin Subject: [PATCH v2 14/14] iommu/tegra: fix device leak on probe_device() Date: Tue, 7 Oct 2025 11:43:27 +0200 Message-ID: <20251007094327.11734-15-johan@kernel.org> X-Mailer: git-send-email 2.49.1 In-Reply-To: <20251007094327.11734-1-johan@kernel.org> References: <20251007094327.11734-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(). Note that commit 9826e393e4a8 ("iommu/tegra-smmu: Fix missing put_device() call in tegra_smmu_find") fixed the leak in an error path, but the reference is still leaking on success. Fixes: 891846516317 ("memory: Add NVIDIA Tegra memory controller support") Cc: stable@vger.kernel.org # 3.19: 9826e393e4a8 Cc: Thierry Reding Cc: Miaoqian Lin Acked-by: Robin Murphy 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