From nobody Tue Dec 2 02:52:29 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 F0D8C2C178D; Mon, 17 Nov 2025 16:13:24 +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=1763396005; cv=none; b=N5TkUQNymhLcyTHXYiYE+acOECp8WgT1xvYpZpZI2J8CkoKWTcwxqRGTpE6+9ZX1JDfUjvq0H2AR0tUMHKgYA5dlyXZtTTHUg40cYUVi+xzlHxcQjCX6OQxs5P8sw1WIZu9kaDoLCj0pOD+mjTt9s8Vl5UXV/ESoQr81bOQIpjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=JU5H6HzpmYMdelWGOYxXN2hreX6TM79xCo8vhX30ZwQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DX6njqb3agu5t11McE3b8HPLD+grvvxfWCsGWGN/YJDWTQt8OB68a2kOjMvHpJ+VQO1rkThD3VRuKNfRgM2taLdzDpIplGRqku6wHg6uf9sIR/bDZQjmS09kRahElSx3z85jpSGlQW6Bb198gSUloCzea9wBVrH5MiZVU1Pg0iQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=s1cCgSQh; 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="s1cCgSQh" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8257FC2BCB0; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=JU5H6HzpmYMdelWGOYxXN2hreX6TM79xCo8vhX30ZwQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s1cCgSQhfV0qhT6mFaFgEIkguoEpECx/rToTAYzsJqeGAIsE5m2pybvanaeEUoUme 00dTKQ2xl1xZqQ2DjkV4NhO26i+KWvVTHntCySEJ026fOT/gJAB7xxEHDpE5bUzvH+ DFIGA+BaP5S73IGZmh0L7mvgUAKdn+jpVblJyJCWRHAgn85AakDj6Md1R5P8zTpOJI UYmu78bU+q/iFohmUdhSFILywTSug3d8g+pOE5TbbqLmpKoHsH36lQ2gd9bABfED/4 9yNNg720sJ+FuvR4v+c4bRqkr6VC+Zv+jR/63uxz9OClpYpLH4Zhluds8SyChyU3Qu vqx7cDuhXJnNQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002nU-1MKk; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Yu Kuai Subject: [PATCH 01/15] dmaengine: at_hdmac: fix device leak on of_dma_xlate() Date: Mon, 17 Nov 2025 17:12:43 +0100 Message-ID: <20251117161258.10679-2-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the DMA platform device during of_dma_xlate() when releasing channel resources. Note that commit 3832b78b3ec2 ("dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()") fixed the leak in a couple of error paths but the reference is still leaking on successful allocation. Fixes: bbe89c8e3d59 ("at_hdmac: move to generic DMA binding") Fixes: 3832b78b3ec2 ("dmaengine: at_hdmac: add missing put_device() call in= at_dma_xlate()") Cc: stable@vger.kernel.org # 3.10: 3832b78b3ec2 Cc: Yu Kuai Signed-off-by: Johan Hovold --- drivers/dma/at_hdmac.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index 2d147712cbc6..dffe5becd6c3 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -1765,6 +1765,7 @@ static int atc_alloc_chan_resources(struct dma_chan *= chan) static void atc_free_chan_resources(struct dma_chan *chan) { struct at_dma_chan *atchan =3D to_at_dma_chan(chan); + struct at_dma_slave *atslave; =20 BUG_ON(atc_chan_is_enabled(atchan)); =20 @@ -1774,8 +1775,12 @@ static void atc_free_chan_resources(struct dma_chan = *chan) /* * Free atslave allocated in at_dma_xlate() */ - kfree(chan->private); - chan->private =3D NULL; + atslave =3D chan->private; + if (atslave) { + put_device(atslave->dma_dev); + kfree(atslave); + chan->private =3D NULL; + } =20 dev_vdbg(chan2dev(chan), "free_chan_resources: done\n"); } --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 A8C722BF019; Mon, 17 Nov 2025 16:13:24 +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=1763396004; cv=none; b=Ey8Q4GVfVZyQf6nGdViIH6rJm1LwOluH4/Te+ePYfP86ikhFoXxMqUrxrzUqquqTbyQXpK1hNDw9VSc2+E0qX3/CGtf0630v139zaKjSr5euO+xsQVQ+szqDfB4FWpvQEwgTnrDk9HX74l76edj8VLY4RKWqv/h3h+s6fO5iypk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396004; c=relaxed/simple; bh=hazxaeYnwXkO6zV8pnL07zJLXt157fqCf1kE68DIE6w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ltgqwzl1jeP8FSIM0gPj9uQMnBOVPZVsfLtg6mtN/CEF4F/5c4JPvmH7XNyMgR42sLHYVVPy5zTwaOmwu/+wfU19uhkeBkfhy7xok3iQuBjM/pGuMM3/hIRLRMVO0nOXCznjXDm4PzHrJKZf/s3ZgtRUojb1E7YvtTb/3Hr+nLg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cBP2/w2o; 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="cBP2/w2o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6B273C19424; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=hazxaeYnwXkO6zV8pnL07zJLXt157fqCf1kE68DIE6w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cBP2/w2o8ksDX2l7Bd24s/yu4AYFSv7Eh3c0c4CqwJuFGJKwdFpZKqIc3n7eHfm+q OJHpB/f2bc00cxNDCQDUNzT9FlFeVSiglsyVWnyOTxlf2bewFnjXFmCx5+ZXfj7rF2 HL+UOKfZ08H65h3rFNjZUyVZTILuxJI24DqTAqQdg43kKpPYm3DJ8KfK6QYoDWz7qf WQHE3bE2rO9enI8xjHbZf33SyVCHEIJ8e4zUHm+jcsOfVS5bIIrRXULRbMefZa1kY3 dDqnKxb5Vo8depiMJUHdFuE+txMO22OrakcUF8j+6HcBZMETY1tkjbw95LNmXRpxAy I0i+hItvXUA6A== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002nY-211T; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 02/15] dmaengine: bcm-sba-raid: fix device leak on probe Date: Mon, 17 Nov 2025 17:12:45 +0100 Message-ID: <20251117161258.10679-4-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the mailbox device during probe on probe failures and on driver unbind. Fixes: 743e1c8ffe4e ("dmaengine: Add Broadcom SBA RAID driver") Cc: stable@vger.kernel.org # 4.13 Signed-off-by: Johan Hovold --- drivers/dma/bcm-sba-raid.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/dma/bcm-sba-raid.c b/drivers/dma/bcm-sba-raid.c index 7f0e76439ce5..ed037fa883f6 100644 --- a/drivers/dma/bcm-sba-raid.c +++ b/drivers/dma/bcm-sba-raid.c @@ -1699,7 +1699,7 @@ static int sba_probe(struct platform_device *pdev) /* Prealloc channel resource */ ret =3D sba_prealloc_channel_resources(sba); if (ret) - goto fail_free_mchan; + goto fail_put_mbox; =20 /* Check availability of debugfs */ if (!debugfs_initialized()) @@ -1729,6 +1729,8 @@ static int sba_probe(struct platform_device *pdev) fail_free_resources: debugfs_remove_recursive(sba->root); sba_freeup_channel_resources(sba); +fail_put_mbox: + put_device(sba->mbox_dev); fail_free_mchan: mbox_free_channel(sba->mchan); return ret; @@ -1744,6 +1746,8 @@ static void sba_remove(struct platform_device *pdev) =20 sba_freeup_channel_resources(sba); =20 + put_device(sba->mbox_dev); + mbox_free_channel(sba->mchan); } =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 2D9EF2C3242; Mon, 17 Nov 2025 16:13:24 +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=1763396005; cv=none; b=R33rZI90fT/faRcxMlQPrSHXrA3VicTdtUEkD/f7hSJX5pCgij/o03HJXJJyC/vWO/8IgwpqMI33CCjvWsZ5nvN7M/zI3GG+nXodoR89VeODvVom85FaWpK9Yu9dNQDm6zehG8oIM39CojaDzN15QAK4gKmej1ZAaunix3AXA5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=0DynXlE5pKQC4/xRzubob/eyJtg08UMyjLT5ZcH1k6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WfCAeaN9thtnURey/4vkVlyRJf4yOmTHbK2TT2rOP6KJVIgXSqm1QMF1XzAy0LahravG2syUgpm+MxpCLB4DpI7pPAY2SjJ3t1RJs6UMHoaSkHly6rfZSevwQ8anv/EhuQsI/fY08JQ3EYk6+LeTXGVjUwgozH6yrt8eu+2FseA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mVcHPq8Z; 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="mVcHPq8Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD9ECC113D0; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=0DynXlE5pKQC4/xRzubob/eyJtg08UMyjLT5ZcH1k6A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mVcHPq8ZTWz4uWDZWzVMMjJXFU/M86wxffulhTv2OQbHxP71Xol2t2Xch0HyGvpSt u8+qnCeMIZf/d9YY3qvqzSwk1SKGv6GgayVFNQppif6bHWJ60Pz8nDdWueclC5ZLVA tMwaCotSaGMJJNwMMiseBYNZfq98FMqoHA3jqUnAMwlVgzFMTKa28mE7QmbmAlYLme eDeHKXC73vV9ZVEfrrTECVt8rjyZT1sUcD/lmsv/xnp4Ynt8OAyLW5rafuAnSnMrhH pVaaweTRoyo0lGS1p8M24RP6+YU4+IEF8X1mtX3bCDlQrrP+nBXr/b4EmPmn2aBWuk FnMLxvCknKK+A== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002nb-2Lzy; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Inochi Amaoto Subject: [PATCH 03/15] dmaengine: cv1800b-dmamux: fix device leak on route allocation Date: Mon, 17 Nov 2025 17:12:46 +0100 Message-ID: <20251117161258.10679-5-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the DMA mux platform device during route allocation. Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference. Fixes: db7d07b5add4 ("dmaengine: add driver for Sophgo CV18XX/SG200X dmamux= ") Cc: stable@vger.kernel.org # 6.17 Cc: Inochi Amaoto Signed-off-by: Johan Hovold --- drivers/dma/cv1800b-dmamux.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/dma/cv1800b-dmamux.c b/drivers/dma/cv1800b-dmamux.c index e900d6595617..f7a952fcbc7d 100644 --- a/drivers/dma/cv1800b-dmamux.c +++ b/drivers/dma/cv1800b-dmamux.c @@ -102,11 +102,11 @@ static void *cv1800_dmamux_route_allocate(struct of_p= handle_args *dma_spec, struct llist_node *node; unsigned long flags; unsigned int chid, devid, cpuid; - int ret; + int ret =3D -EINVAL; =20 if (dma_spec->args_count !=3D DMAMUX_NCELLS) { dev_err(&pdev->dev, "invalid number of dma mux args\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 devid =3D dma_spec->args[0]; @@ -115,18 +115,18 @@ static void *cv1800_dmamux_route_allocate(struct of_p= handle_args *dma_spec, =20 if (devid > MAX_DMA_MAPPING_ID) { dev_err(&pdev->dev, "invalid device id: %u\n", devid); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 if (cpuid > MAX_DMA_CPU_ID) { dev_err(&pdev->dev, "invalid cpu id: %u\n", cpuid); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", 0); if (!dma_spec->np) { dev_err(&pdev->dev, "can't get dma master\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 spin_lock_irqsave(&dmamux->lock, flags); @@ -136,8 +136,6 @@ static void *cv1800_dmamux_route_allocate(struct of_pha= ndle_args *dma_spec, if (map->peripheral =3D=3D devid && map->cpu =3D=3D cpuid) goto found; } - - ret =3D -EINVAL; goto failed; } else { node =3D llist_del_first(&dmamux->free_maps); @@ -171,12 +169,17 @@ static void *cv1800_dmamux_route_allocate(struct of_p= handle_args *dma_spec, dev_dbg(&pdev->dev, "register channel %u for req %u (cpu %u)\n", chid, devid, cpuid); =20 + put_device(&pdev->dev); + return map; =20 failed: spin_unlock_irqrestore(&dmamux->lock, flags); of_node_put(dma_spec->np); dev_err(&pdev->dev, "errno %d\n", ret); +err_put_pdev: + put_device(&pdev->dev); + return ERR_PTR(ret); } =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 35D652C3253; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=O++OsiuuzAxSnrrKDa9go1BZLF99MDLFLXneU7hMO00phgexcZLrJ6DK0ynuEw9WRPnNmgpe/cwJuns8SHiIte0zaCipMWxtboEWEk144PTOhywvQmXBYOpW4IEBrzcI6zimMZUqk37KQjmAYK4Wa5VWuhm0bJIXWBvCGHVDdBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=57X0vMwFUIqQbrllS7orgbHpnLFQpUEp5VAeLv1CHvg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kNJ3SKmQtwmj1RjAzdqr+8h6tHpVnyhmbYyOmB8yNj1+N1CtMhLKeDuB/gyaOtJ4nsEqJscT/JhYgPrCFQciijQ6QTg0jFwMtA5HzBefXO8iFjSBTST/mRiMkvKXYmrgKPbMCBH6y0UVjCmQDacl7GSkcc79ZJJPQBL8mQr6Rs8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Iuj8TL14; 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="Iuj8TL14" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D86A9C19424; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=57X0vMwFUIqQbrllS7orgbHpnLFQpUEp5VAeLv1CHvg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Iuj8TL14arYYbq8NEr3U4+gyjFK+kwE98EIQ3fkNUEMDICWIxEOqOia7bn+Ec7GJf HD/rGRwiH3D6f0Gvj6YpAG3e3RXymu7a1xaT8aPFbBzDM+ELRbaZq6MZIGhdiJBtOJ gT4pwNiyVfe5xQkimI43Y0IYf/4ohNWhuG6VHVteC9qEABv+cZX167XdOKuEfF3G+B birWvyITejbLu188W2KkEJ95Iyu+0Qu1TJiliQrUEBDQqktPq7IHhwItVZ7agP3424 QxLNR/edSjs5Eon9HnnEhLIqhc142CPPuMCOiQCPnIOfgCQ2P0Dm7gQBygI7KMTWkZ jDuLlxfnlGKFg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002ne-2h0W; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Miquel Raynal Subject: [PATCH 04/15] dmaengine: dw: dmamux: fix OF node leak on route allocation failure Date: Mon, 17 Nov 2025 17:12:47 +0100 Message-ID: <20251117161258.10679-6-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 DMA master OF node also on late route allocation failures. Fixes: 134d9c52fca2 ("dmaengine: dw: dmamux: Introduce RZN1 DMA router supp= ort") Cc: stable@vger.kernel.org # 5.19 Cc: Miquel Raynal Signed-off-by: Johan Hovold Reviewed-by: Miquel Raynal --- drivers/dma/dw/rzn1-dmamux.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dw/rzn1-dmamux.c b/drivers/dma/dw/rzn1-dmamux.c index deadf135681b..cbec277af4dd 100644 --- a/drivers/dma/dw/rzn1-dmamux.c +++ b/drivers/dma/dw/rzn1-dmamux.c @@ -90,7 +90,7 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle= _args *dma_spec, =20 if (test_and_set_bit(map->req_idx, dmamux->used_chans)) { ret =3D -EBUSY; - goto free_map; + goto put_dma_spec_np; } =20 mask =3D BIT(map->req_idx); @@ -103,6 +103,8 @@ static void *rzn1_dmamux_route_allocate(struct of_phand= le_args *dma_spec, =20 clear_bitmap: clear_bit(map->req_idx, dmamux->used_chans); +put_dma_spec_np: + of_node_put(dma_spec->np); free_map: kfree(map); put_device: --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 162AF2C235D; Mon, 17 Nov 2025 16:13:24 +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=1763396005; cv=none; b=IBzyQGNvvm8qwx/eTpmDVddO+e1DAQz4lzT+dzQX6MAUW/rTcdVpQ7wtkeWKRE2tE18ATwMjagV+fuTjeyG/ARonSwqqJehAMHKKz37etq5ELP+tGjuLqHn2vuWPbhp6LEYxhQmO6hasQ+5/6oNk6SavaX1STOukAi9mWFeqcLo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=AGV01UnVDJZRdNN3E9lTAeqlaL238kaCs0BNRl5f36Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TG5/pApkexB0AW2XdicbEDaDhJnyQKd9IY54Ekh1vWvbND52LodTEpzgTO7U+XJ43NzgX7MYLP/9UoBwnGLQRP7/1dUEzkckMrNZDhyfnf00OUTnbCfjTpg0uV8udj5E1zskUksgq1bGrwHPCTJ4hBX31DmsMqTHNptbsZs4nF0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c5OGDO/8; 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="c5OGDO/8" Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADBDBC19423; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=AGV01UnVDJZRdNN3E9lTAeqlaL238kaCs0BNRl5f36Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c5OGDO/8M8JnaAvlv6uwOe9ZOC6on23fntxgXTRPLQrQTrFUrGuvnxXDkuqdnrfXF sz2WSYb1cDLpxGdsRiIC6gg6YTjD58s1tfCPCzjqpz+RzsuXFLYNVcEsWXFqCWNrhA pDpxYILO507gB2sCSlQSZ+uW41LiswaTeSXo8b2x9lkF9dFYK3iubt5wVjXjCPgyhy YD4v42nsbE8Bk+ZbvLCWH7fCRkLL4iD7zZdBW3Rtxjw1kJK8FfUut7Re+YxmCytDw3 sVbOOl1L7nipB83yOACuZdTLUlRzQRXNaSLVYKFibNc2YwWoRopkUMk8YsoUiNZ4zX 9Q3Q+H0dQdKDw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002np-34IE; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 05/15] dmaengine: idxd: fix device leaks on compat bind and unbind Date: Mon, 17 Nov 2025 17:12:48 +0100 Message-ID: <20251117161258.10679-7-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the idxd device as part of the compat bind and unbind sysfs interface. Fixes: 6e7f3ee97bbe ("dmaengine: idxd: move dsa_drv support to compatible m= ode") Cc: stable@vger.kernel.org # 5.15 Cc: Dave Jiang Signed-off-by: Johan Hovold Reviewed-by: Dave Jiang > --- --- drivers/dma/idxd/compat.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/dma/idxd/compat.c b/drivers/dma/idxd/compat.c index eff9943f1a42..95b8ef958633 100644 --- a/drivers/dma/idxd/compat.c +++ b/drivers/dma/idxd/compat.c @@ -20,11 +20,16 @@ static ssize_t unbind_store(struct device_driver *drv, = const char *buf, size_t c int rc =3D -ENODEV; =20 dev =3D bus_find_device_by_name(bus, NULL, buf); - if (dev && dev->driver) { + if (!dev) + return -ENODEV; + + if (dev->driver) { device_driver_detach(dev); rc =3D count; } =20 + put_device(dev); + return rc; } static DRIVER_ATTR_IGNORE_LOCKDEP(unbind, 0200, NULL, unbind_store); @@ -38,9 +43,12 @@ static ssize_t bind_store(struct device_driver *drv, con= st char *buf, size_t cou struct idxd_dev *idxd_dev; =20 dev =3D bus_find_device_by_name(bus, NULL, buf); - if (!dev || dev->driver || drv !=3D &dsa_drv.drv) + if (!dev) return -ENODEV; =20 + if (dev->driver || drv !=3D &dsa_drv.drv) + goto err_put_dev; + idxd_dev =3D confdev_to_idxd_dev(dev); if (is_idxd_dev(idxd_dev)) { alt_drv =3D driver_find("idxd", bus); @@ -53,13 +61,20 @@ static ssize_t bind_store(struct device_driver *drv, co= nst char *buf, size_t cou alt_drv =3D driver_find("user", bus); } if (!alt_drv) - return -ENODEV; + goto err_put_dev; =20 rc =3D device_driver_attach(alt_drv, dev); if (rc < 0) - return rc; + goto err_put_dev; + + put_device(dev); =20 return count; + +err_put_dev: + put_device(dev); + + return rc; } static DRIVER_ATTR_IGNORE_LOCKDEP(bind, 0200, NULL, bind_store); =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 35CC02C3252; Mon, 17 Nov 2025 16:13:24 +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=1763396005; cv=none; b=XSCM05R+eaybC6PJ5x0ykYhYU9i/Nslxi8dkydccd5CXWGLP4uXIF000//PZo8LtWpOYlrlgO/xc/GjpRd0rbeGq4G01WBeRgXkCLW3jwHn64CG5PiAkgsukorF9srvV3/Ml4SVpyxmkzNBG1y8SHH/y76gNJRGilt2Yf8C6pDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=oJuF1iY88Mpi7VOqHbnjYrJMJU1Agh3Lfe9Wxf7yHvo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K/mT9nscgC3RVtOKKDsXuK7cEaou4rJv4bkhNX3nUGR7CAXX/OIJi1F6DKsyNKK7bT2FOZNykdU0pjxbD6jpudNXk547roW5JCXZ89/RoJgK0VwlpjN3CpABfeeXikUm2OeXUic6shqm8S0UHZzxPa79sMVRVLk9+1QkMIHRTZM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cu1DHYUV; 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="cu1DHYUV" Received: by smtp.kernel.org (Postfix) with ESMTPSA id CE7BAC2BC87; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=oJuF1iY88Mpi7VOqHbnjYrJMJU1Agh3Lfe9Wxf7yHvo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cu1DHYUVgtEm205Jb5mmzJC/SVEFZKltYM/QvaPgYkZXi5dZRxJuosZ+HRoQQLQzD g8BAIo1qP9bIMCIQ8eRoA8lPB5QVB8LJP9sRCX7o3zQsUP8FrGbA3EKL6GG8pfcCOQ 98wjO4qYy/ahSzpc+N3H2a6q9LwgENkrfDb7iQARH5sOMau6WMjgpKKo6EX6TlKd9B bU4DHzAIpJW7YkSa9ccJ9WN+OjFjnltcSPUmWLZNws9DSbDmOiIhit5rlSa2H5r4p/ OptEh5av8tplwBjFQr4XwqqG/XSaCuasYL4QNhXfrfILl53r354PReAiIKwqsE6EHg uoYez+6nZWcMg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002ns-3UOf; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 06/15] dmaengine: lpc18xx-dmamux: fix device leak on route allocation Date: Mon, 17 Nov 2025 17:12:49 +0100 Message-ID: <20251117161258.10679-8-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the DMA mux platform device during route allocation. Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference. Fixes: e5f4ae84be74 ("dmaengine: add driver for lpc18xx dmamux") Cc: stable@vger.kernel.org # 4.3 Signed-off-by: Johan Hovold Reviewed-by: Vladimir Zapolskiy --- drivers/dma/lpc18xx-dmamux.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/dma/lpc18xx-dmamux.c b/drivers/dma/lpc18xx-dmamux.c index 2b6436f4b193..d3ff521951b8 100644 --- a/drivers/dma/lpc18xx-dmamux.c +++ b/drivers/dma/lpc18xx-dmamux.c @@ -57,30 +57,31 @@ static void *lpc18xx_dmamux_reserve(struct of_phandle_a= rgs *dma_spec, struct lpc18xx_dmamux_data *dmamux =3D platform_get_drvdata(pdev); unsigned long flags; unsigned mux; + int ret =3D -EINVAL; =20 if (dma_spec->args_count !=3D 3) { dev_err(&pdev->dev, "invalid number of dma mux args\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 mux =3D dma_spec->args[0]; if (mux >=3D dmamux->dma_master_requests) { dev_err(&pdev->dev, "invalid mux number: %d\n", dma_spec->args[0]); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 if (dma_spec->args[1] > LPC18XX_DMAMUX_MAX_VAL) { dev_err(&pdev->dev, "invalid dma mux value: %d\n", dma_spec->args[1]); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 /* The of_node_put() will be done in the core for the node */ dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", 0); if (!dma_spec->np) { dev_err(&pdev->dev, "can't get dma master\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 spin_lock_irqsave(&dmamux->lock, flags); @@ -89,7 +90,8 @@ static void *lpc18xx_dmamux_reserve(struct of_phandle_arg= s *dma_spec, dev_err(&pdev->dev, "dma request %u busy with %u.%u\n", mux, mux, dmamux->muxes[mux].value); of_node_put(dma_spec->np); - return ERR_PTR(-EBUSY); + ret =3D -EBUSY; + goto err_put_pdev; } =20 dmamux->muxes[mux].busy =3D true; @@ -106,7 +108,14 @@ static void *lpc18xx_dmamux_reserve(struct of_phandle_= args *dma_spec, dev_dbg(&pdev->dev, "mapping dmamux %u.%u to dma request %u\n", mux, dmamux->muxes[mux].value, mux); =20 + put_device(&pdev->dev); + return &dmamux->muxes[mux]; + +err_put_pdev: + put_device(&pdev->dev); + + return ERR_PTR(ret); } =20 static int lpc18xx_dmamux_probe(struct platform_device *pdev) --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 3816F2C3255; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=QvUFW7R8Mu/Hzt2IjlCdHoL6SgAY3loGU/Fc8bclpdfT56aTY2n6/bsDbpm15SWqEqszl1EEHHu2lIWCOO+/3D763AMO8nrWTBnbNag70b/wnkyGNpjJQPjSukTcckdJd95oSGhfhfLRwu3wT8oAr/yIeawQRvFkhY1slUjiJLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=VBdlt/U82+VSKcAFX8Y5c0YN3goi7irfhq7BlBASkaY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u1HYESuQjQeynOy31aTwRKZpHGCIZXEoO9PmxyWhtiD1IcHdx0gN/A1DZG8O9bCjvBcNDsCjgP2T0LeDsMzojUB5ncs3ueDlSkgTaXmNPhIclt9fF5C27Q4icz3eNH4LSjgcRTSCAwz118McOONiIBvaYD1XukRUu1P9hTVI5FE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sXx6BYgO; 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="sXx6BYgO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E7ABAC19425; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=VBdlt/U82+VSKcAFX8Y5c0YN3goi7irfhq7BlBASkaY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sXx6BYgO8wlWV+HuayrfP9NQyPgF1ynggGKCfEPzsPa0uMlExf8FO1qMTvriuNC3X Mou9CC8QbfBGNx7NnnlBaNaa059D6ktxowiGOMhY9HQ631O38fnhGm2LbDqBffyrSs b7VdUZY3wijCqcBcsbULbhQs6MPHylANLXn6X2iCpmD5K6TeNMO+zJlMAIyosYkstc 4vJaCRVlUGZSDnaf8cJ75nxpPMOKMZWXJ9rfcdmGB3eF19WETT+gJ2wV0wPVe74lXM PkiWKsDNtSYuW4fcrAoFL9ZTTM810lxVFARAbckj8RIJsBLgI/5avfWp9T2QlrMXk1 fmvHBCibiUQdA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002nv-3ukB; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org Subject: [PATCH 07/15] dmaengine: lpc32xx-dmamux: fix device leak on route allocation Date: Mon, 17 Nov 2025 17:12:50 +0100 Message-ID: <20251117161258.10679-9-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the DMA mux platform device during route allocation. Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference. Fixes: 5d318b595982 ("dmaengine: Add dma router for pl08x in LPC32XX SoC") Cc: stable@vger.kernel.org # 6.12 Cc: Piotr Wojtaszczyk Signed-off-by: Johan Hovold Reviewed-by: Vladimir Zapolskiy --- drivers/dma/lpc32xx-dmamux.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/dma/lpc32xx-dmamux.c b/drivers/dma/lpc32xx-dmamux.c index 351d7e23e615..33be714740dd 100644 --- a/drivers/dma/lpc32xx-dmamux.c +++ b/drivers/dma/lpc32xx-dmamux.c @@ -95,11 +95,12 @@ static void *lpc32xx_dmamux_reserve(struct of_phandle_a= rgs *dma_spec, struct lpc32xx_dmamux_data *dmamux =3D platform_get_drvdata(pdev); unsigned long flags; struct lpc32xx_dmamux *mux =3D NULL; + int ret =3D -EINVAL; int i; =20 if (dma_spec->args_count !=3D 3) { dev_err(&pdev->dev, "invalid number of dma mux args\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 for (i =3D 0; i < ARRAY_SIZE(lpc32xx_muxes); i++) { @@ -111,20 +112,20 @@ static void *lpc32xx_dmamux_reserve(struct of_phandle= _args *dma_spec, if (!mux) { dev_err(&pdev->dev, "invalid mux request number: %d\n", dma_spec->args[0]); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 if (dma_spec->args[2] > 1) { dev_err(&pdev->dev, "invalid dma mux value: %d\n", dma_spec->args[1]); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 /* The of_node_put() will be done in the core for the node */ dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", 0); if (!dma_spec->np) { dev_err(&pdev->dev, "can't get dma master\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 spin_lock_irqsave(&dmamux->lock, flags); @@ -133,7 +134,8 @@ static void *lpc32xx_dmamux_reserve(struct of_phandle_a= rgs *dma_spec, dev_err(dev, "dma request signal %d busy, routed to %s\n", mux->signal, mux->muxval ? mux->name_sel1 : mux->name_sel1); of_node_put(dma_spec->np); - return ERR_PTR(-EBUSY); + ret =3D -EBUSY; + goto err_put_pdev; } =20 mux->busy =3D true; @@ -148,7 +150,14 @@ static void *lpc32xx_dmamux_reserve(struct of_phandle_= args *dma_spec, dev_dbg(dev, "dma request signal %d routed to %s\n", mux->signal, mux->muxval ? mux->name_sel1 : mux->name_sel1); =20 + put_device(&pdev->dev); + return mux; + +err_put_pdev: + put_device(&pdev->dev); + + return ERR_PTR(ret); } =20 static int lpc32xx_dmamux_probe(struct platform_device *pdev) --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 24A472C237C; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=mRWXyCBND+gqkTs5FuPaCy0y37ro3c8ZaH+sZxq+K4liXsIYTwhkPPyzGBNBCAnyoeWoz1Zbk6HMC/oQjxnrT6tWY4oJwXeLDR23hyYbExTWBfVpZfmkDBDJE1w4MLtnRAGE3OP25o9MLUG0C/rqC2Um9/9BUimqXuEJOH05rZw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=+gtV5rGLMOFmbBmErF+iAc9MrKb8OqQyobykzk6xYrA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WzFsBjGkWBjDI7QTmELi/3giME20jjyJZRRILCtwt6y5F2tqDUEnRlOp3VTz8wy3FulDfbkY0OwylEuyq/DMCmyLBCQfbVQJQwgBdnAAkPiwAfeqkui/FePHounlv6MKp7ryfR91uZ5C4HMpyO+smjads9dzKLHN6E2wC53XHrg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RtWPys9u; 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="RtWPys9u" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F052CC2BCB6; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=+gtV5rGLMOFmbBmErF+iAc9MrKb8OqQyobykzk6xYrA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RtWPys9u5/RHjAa0zDWNmAErSem3vWH2P2aGvlP1X3AaddCUPcbWVS1lGZr3qfj9X Trrj0Vd5Cj0YOieXIBj5SJTkLObFlOflcF16wp9Yixszgydx86RfAYfhEQf0zUfB7R hSxxI3Gzbvusoucfw/VeFE7x/qSuw+AuAsWAyW96kOlq/UzCDbYG9Yv7+qwvSURBFV bX6PKhyiEjCNadMqH4Om8Lz61ME0XIQAX+hOuYqtVi1riP2HJmPB+NYbEZlMnfWcK3 OOIhFJL+80MhuM6+3+oXAYhpxm66oWen6g2YEtZya9377PJl9ZFLnzHggbruCqS9In 6A+JzeVw5Vofg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002o0-08t5; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Fabrizio Castro Subject: [PATCH 08/15] dmaengine: sh: rz-dmac: fix device leak on probe failure Date: Mon, 17 Nov 2025 17:12:51 +0100 Message-ID: <20251117161258.10679-10-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the ICU device during probe also on probe failures (e.g. probe deferral). Fixes: 7de873201c44 ("dmaengine: sh: rz-dmac: Add RZ/V2H(P) support") Cc: stable@vger.kernel.org # 6.16 Cc: Fabrizio Castro Signed-off-by: Johan Hovold --- drivers/dma/sh/rz-dmac.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c index 1f687b08d6b8..38137e8d80b9 100644 --- a/drivers/dma/sh/rz-dmac.c +++ b/drivers/dma/sh/rz-dmac.c @@ -854,6 +854,13 @@ static int rz_dmac_chan_probe(struct rz_dmac *dmac, return 0; } =20 +static void rz_dmac_put_device(void *_dev) +{ + struct device *dev =3D _dev; + + put_device(dev); +} + static int rz_dmac_parse_of_icu(struct device *dev, struct rz_dmac *dmac) { struct device_node *np =3D dev->of_node; @@ -876,6 +883,10 @@ static int rz_dmac_parse_of_icu(struct device *dev, st= ruct rz_dmac *dmac) return -ENODEV; } =20 + ret =3D devm_add_action_or_reset(dev, rz_dmac_put_device, &dmac->icu.pdev= ->dev); + if (ret) + return ret; + dmac_index =3D args.args[0]; if (dmac_index > RZV2H_MAX_DMAC_INDEX) { dev_err(dev, "DMAC index %u invalid.\n", dmac_index); @@ -1055,8 +1066,6 @@ static void rz_dmac_remove(struct platform_device *pd= ev) reset_control_assert(dmac->rstc); pm_runtime_put(&pdev->dev); pm_runtime_disable(&pdev->dev); - - platform_device_put(dmac->icu.pdev); } =20 static const struct of_device_id of_rz_dmac_match[] =3D { --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 3B9A92C3259; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=da/Bd1sZhmrJlTTzG8qNpK9bJhzpmgb0MCgESR8Q0YPlnc7cLIxv5YeCIHVmliXUufsQYlAWLB0wA1GO3Ujtep3YWF65G1ewiuomylqSouzEPSjsct6ZuVlo20annbVzpYN5WVi9Bn9aC27EnLd1NWy9Evkks9nbrNBy8rfyv0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=5jhp2qvO0rHVrq0HKmOWaRqTDSDSkNCr3jjIIuXsGzQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PqSkBBbjPLkoiPbagUdSsUvawqTWDabNOIRRiPUUsqbp2oGfm2lCPkWG1dMmmeY7R50lXwdVGtf9gEo/ZK27TSx1TiTVQzm1RLD7oKB/HM5v5HzELgJLetRabd2zcDpe4bvH1IJVIl5JH93LohRUGcPk86ryNPcvaD1M7OeiBpk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OfCIpUhl; 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="OfCIpUhl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 120A9C2BCB1; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=5jhp2qvO0rHVrq0HKmOWaRqTDSDSkNCr3jjIIuXsGzQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OfCIpUhld0WTnUFtatmt7+0DZ7alHoRi4w1T/9y/nJCOqhH2F3dIxyoAFK1IaJ/i6 xdWTmgkNi90QwTx3LEorB8OiMETlsOw3Jo8yPP7WcfKk/mJ6i9MG6MbL/2Lg+bBP+B f2o4HxZTmySciGOMfKEC5ZnDF5YYJQx1ZbuAiufsMPpBKiSEKxTm7YyOzW2fJ2x9IP qacT39tDHvlK4BnB3SlNSYUhIZSiq1fF3FJOem5fGjKlcOHtBfIasClivrE0f27EH3 j6E3FL/cUaeDTY1RO5PTXewJTO9FUinkOPWi4z8wWuIo3y72XFrawWmwvDFuxuviWU RVddu56CzTyRw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002o3-0Y6X; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Pierre-Yves MORDRET Subject: [PATCH 09/15] dmaengine: stm32: dmamux: fix device leak on route allocation Date: Mon, 17 Nov 2025 17:12:52 +0100 Message-ID: <20251117161258.10679-11-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the DMA mux platform device during route allocation. Note that holding a reference to a device does not prevent its driver data from going away so there is no point in keeping the reference. Fixes: df7e762db5f6 ("dmaengine: Add STM32 DMAMUX driver") Cc: stable@vger.kernel.org # 4.15 Cc: Pierre-Yves MORDRET Signed-off-by: Johan Hovold Reviewed-by: Amelie Delaunay --- drivers/dma/stm32/stm32-dmamux.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/dma/stm32/stm32-dmamux.c b/drivers/dma/stm32/stm32-dma= mux.c index 8d77e2a7939a..791179760782 100644 --- a/drivers/dma/stm32/stm32-dmamux.c +++ b/drivers/dma/stm32/stm32-dmamux.c @@ -90,23 +90,25 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, struct stm32_dmamux_data *dmamux =3D platform_get_drvdata(pdev); struct stm32_dmamux *mux; u32 i, min, max; - int ret; + int ret =3D -EINVAL; unsigned long flags; =20 if (dma_spec->args_count !=3D 3) { dev_err(&pdev->dev, "invalid number of dma mux args\n"); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 if (dma_spec->args[0] > dmamux->dmamux_requests) { dev_err(&pdev->dev, "invalid mux request number: %d\n", dma_spec->args[0]); - return ERR_PTR(-EINVAL); + goto err_put_pdev; } =20 mux =3D kzalloc(sizeof(*mux), GFP_KERNEL); - if (!mux) - return ERR_PTR(-ENOMEM); + if (!mux) { + ret =3D -ENOMEM; + goto err_put_pdev; + } =20 spin_lock_irqsave(&dmamux->lock, flags); mux->chan_id =3D find_first_zero_bit(dmamux->dma_inuse, @@ -133,7 +135,6 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", i - 1); if (!dma_spec->np) { dev_err(&pdev->dev, "can't get dma master\n"); - ret =3D -EINVAL; goto error; } =20 @@ -160,6 +161,8 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, dev_dbg(&pdev->dev, "Mapping DMAMUX(%u) to DMA%u(%u)\n", mux->request, mux->master, mux->chan_id); =20 + put_device(&pdev->dev); + return mux; =20 error: @@ -167,6 +170,9 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, =20 error_chan_id: kfree(mux); +err_put_pdev: + put_device(&pdev->dev); + return ERR_PTR(ret); } =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 572772C326A; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=BU7Zqw1Lfw8n6mIDVhe43Froh6Y+B9x9RbVMM2eaHZtsH8dchMP6tJlmus6qvdOjrSW/kZkCbWr5kFbZjB1MaxkRSPkF5kUVVTyveMuunHOnuOH8K323nbsjby7lLb/Pyr9uDHTibPXa+UjnS+Sw1n+W0Lfj1hVARosRgYrkXBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=6GuL0jGSTkjc+0hA4Khl/ddCHp/8iIPhZ1fuBFVHStE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DxWmuJLVYz9zZAoCkJRAf3v2piVTPH60tnnMcKS6waq6DULbNkGByhkluHw6FAQGJT18qnm3UAVNIzAOfR5EpIqFmjfY2RYuLFLnTabARzSISMDhyY/AtdczG1VBc2Xkf315s/BapIkLe3U2q09GvxH4mPBs+14EkhpO6NhyjaE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SsoCOm5A; 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="SsoCOm5A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 37F58C116B1; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=6GuL0jGSTkjc+0hA4Khl/ddCHp/8iIPhZ1fuBFVHStE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SsoCOm5AoPtWQ7AxjyyjLkJqoPymDW6LgSyFrfuEEDcqQ7WN6D1fMpPtL5oUTsg+S Qs7HAviy7B6bOQycgTjLs9VNuVP8EDU9mTm+54E4W4hTrIjttN+yv8Y3F3AdnTn+TN gAp3CjAxNNLmzc9QLxUQAFRtyXTQpjyO3wS4TIBTV+a39YbFvsyJMdl0CPnX5UzAmo veXlMGtyAXy+3fQkWOxjI/jStF6NqT9szCBZOpZ538jGW9sW4V7SJNe8N3OGaTK1Af Sh8lvLqzQeVM528VVhb9jk3ewrNJCT2/hPjN0OFvNOuyZtUSbthvmO9gBWPdNgUPnL RpOTJqTTEhEMQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002o5-0sEj; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Pierre-Yves MORDRET Subject: [PATCH 10/15] dmaengine: stm32: dmamux: fix OF node leak on route allocation failure Date: Mon, 17 Nov 2025 17:12:53 +0100 Message-ID: <20251117161258.10679-12-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 DMA master OF node also on late route allocation failures. Fixes: df7e762db5f6 ("dmaengine: Add STM32 DMAMUX driver") Cc: stable@vger.kernel.org # 4.15 Cc: Pierre-Yves MORDRET Signed-off-by: Johan Hovold Reviewed-by: Amelie Delaunay --- drivers/dma/stm32/stm32-dmamux.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/dma/stm32/stm32-dmamux.c b/drivers/dma/stm32/stm32-dma= mux.c index 791179760782..2bd218dbabbb 100644 --- a/drivers/dma/stm32/stm32-dmamux.c +++ b/drivers/dma/stm32/stm32-dmamux.c @@ -143,7 +143,7 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, ret =3D pm_runtime_resume_and_get(&pdev->dev); if (ret < 0) { spin_unlock_irqrestore(&dmamux->lock, flags); - goto error; + goto err_put_dma_spec_np; } spin_unlock_irqrestore(&dmamux->lock, flags); =20 @@ -165,6 +165,8 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, =20 return mux; =20 +err_put_dma_spec_np: + of_node_put(dma_spec->np); error: clear_bit(mux->chan_id, dmamux->dma_inuse); =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 6F0702D0616; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=CdBdOV17pXhECeDLF8NI5tZJ3SNa9lDiimjQPztCc+LwvF/4zAMKwfR2oouN2BO/e32058OhZX7S4kUUYQtjvxlaj6AKNAcK2+WRHWSXFFNKdFsE4XJol2+MknxgONgGyYf6kRgTdqVdO55OhhLo+h3shMp7oSNDIesfiRfsA+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=a/z8oiJ1emaOdi37ui+TS+tLvLimlhxJjpEUmOHOftw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LP2YBwEGXGMEWUT5O91kDx4hnX/Xh7kKtFVUV+WSq0JjPkSNu4bi1pnPWJx2iNKiN1CI0ZBttzABTezJNi8zBMFRs/9Vu3Y0cYQJa7TLMVG4WlracFSC4S0kAzZ5aCMXs7YFYCThbau404ENGQipFkzikRlO58ntqGLXk6T1Y/k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jHPMA0X1; 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="jHPMA0X1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42927C2BCB3; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=a/z8oiJ1emaOdi37ui+TS+tLvLimlhxJjpEUmOHOftw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jHPMA0X1ANaCFuJeKjxmU3tWhGqJ7obpUxJjBttqM/CPJvhOL1lkOywb1invE8fbF K/9OLZAfIz1lxZDANrcw7yGpvDoW8OhZECYt+nB5xUIpqlQ7/C0n62wfinBBpdeaSG xYYfqOJ7zmDDFl7bdpMUmq5EKqmjuVSwSf4OG9cbTtxz6ytxj/FPSC9p/d7prNxNpQ u5tGxPSFTd5ZksmQ+Dk3LciDbhWC4FF+zFOKXXyTbhl9J01etFv9RwLzC2DK8TQV0K Iti36CDYqHoGJdj/1IGYy9dfZjwarlLeWr7vGpXQ/p6FKJwkcnmqyrzqOZNrMq7okp GJwXiZ5zSw2SQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002o8-1Gcc; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 11/15] dmaengine: stm32: dmamux: clean up route allocation error labels Date: Mon, 17 Nov 2025 17:12:54 +0100 Message-ID: <20251117161258.10679-13-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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" Error labels should be named after what they do (and not after wherefrom they are jumped to). Signed-off-by: Johan Hovold Reviewed-by: Amelie Delaunay --- drivers/dma/stm32/stm32-dmamux.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/dma/stm32/stm32-dmamux.c b/drivers/dma/stm32/stm32-dma= mux.c index 2bd218dbabbb..db13498b9c9f 100644 --- a/drivers/dma/stm32/stm32-dmamux.c +++ b/drivers/dma/stm32/stm32-dmamux.c @@ -118,7 +118,7 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, spin_unlock_irqrestore(&dmamux->lock, flags); dev_err(&pdev->dev, "Run out of free DMA requests\n"); ret =3D -ENOMEM; - goto error_chan_id; + goto err_free_mux; } set_bit(mux->chan_id, dmamux->dma_inuse); spin_unlock_irqrestore(&dmamux->lock, flags); @@ -135,7 +135,7 @@ static void *stm32_dmamux_route_allocate(struct of_phan= dle_args *dma_spec, dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", i - 1); if (!dma_spec->np) { dev_err(&pdev->dev, "can't get dma master\n"); - goto error; + goto err_clear_inuse; } =20 /* Set dma request */ @@ -167,10 +167,9 @@ static void *stm32_dmamux_route_allocate(struct of_pha= ndle_args *dma_spec, =20 err_put_dma_spec_np: of_node_put(dma_spec->np); -error: +err_clear_inuse: clear_bit(mux->chan_id, dmamux->dma_inuse); - -error_chan_id: +err_free_mux: kfree(mux); err_put_pdev: put_device(&pdev->dev); --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 7F80A2D0635; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=bn3JFAPlbKVnvYR5aSj19k4h50vz8xQ7i2T5ZqJWm0z+I1Kr8ogW0hVHH0QpsdstmPzkf2pQBzwX/KsxSXkBtLfGN4kuOrm+8/sDvDeEeaz1kjsZgF6ZECKz1tZhaxSoPcx6SMbQYzXT/3wYU/1MGfd9lahF5fMGVmyomnHGKtA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=y1FuJEfKwFBT32YZR2KFCDOM008BUzx/mEb1XlP/nHU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=b3Q7TnbN8omxHEswwQdbDlsvnjld2Ubia1pEuk5g15+R9AOej0QHzKvWkwhe05nfn6Dwk12NpM2bh3EP8FtYUNEAs2J4peUTrmAGIK4sW+N+rGnpPMDg2DxmLAd1T2UuHqKjrAZoIFUAyi89ioP79F9NvDv+gDJp+du+dzK7d90= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Illrwbrl; 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="Illrwbrl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 587B6C113D0; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=y1FuJEfKwFBT32YZR2KFCDOM008BUzx/mEb1XlP/nHU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IllrwbrlnAm0LHbftszwREVu7ZXeuhaUjd7+ExOS6LEv+uvmOTVV4VBJKp6p316GN xkFyfCnVhKS12yldSvGW7xRJWlZtQfslEvCTznIVbDUbmXLUJO2lieGTXh4aGl104c nwqGg4gGelojAcMqAIt3PEgThvvTN/fXLXJBc+utIRay+giDePUxJiufjVuwBWbGm0 BW2o/7h9ROulkqWltRONK9HqNMIzxShd9zoIbUnsHrjHDhwEkXkmIdshs4IfsJYeiC sy0pOlQq3i/ARVSGp5Oas66mxaLmF07o2e8V11Q7rBOoEIlhEHjbBqStishFiAkDGL eXltv9jurugcg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002oB-1h9L; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Peter Ujfalusi , Miaoqian Lin Subject: [PATCH 12/15] dmaengine: ti: dma-crossbar: fix device leak on dra7x route allocation Date: Mon, 17 Nov 2025 17:12:55 +0100 Message-ID: <20251117161258.10679-14-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the crossbar platform device during dra7x route allocation. Note that commit 615a4bfc426e ("dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate") fixed the leak in the error paths but the reference is still leaking on successful allocation. Fixes: a074ae38f859 ("dmaengine: Add driver for TI DMA crossbar on DRA7x") Fixes: 615a4bfc426e ("dmaengine: ti: Add missing put_device in ti_dra7_xbar= _route_allocate") Cc: stable@vger.kernel.org # 4.2: 615a4bfc426e Cc: Peter Ujfalusi Cc: Miaoqian Lin Signed-off-by: Johan Hovold --- drivers/dma/ti/dma-crossbar.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dma/ti/dma-crossbar.c b/drivers/dma/ti/dma-crossbar.c index 7f17ee87a6dc..e52b0e139900 100644 --- a/drivers/dma/ti/dma-crossbar.c +++ b/drivers/dma/ti/dma-crossbar.c @@ -288,6 +288,8 @@ static void *ti_dra7_xbar_route_allocate(struct of_phan= dle_args *dma_spec, =20 ti_dra7_xbar_write(xbar->iomem, map->xbar_out, map->xbar_in); =20 + put_device(&pdev->dev); + return map; } =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 BA9B82D238A; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=VrykFwJ5+pOzAwJ/IKrnfZoczxjDPocVaaqOpnQ/AX0LIR9jaSYNKzBlj0MR8VUR5tGdr473aLeQiqB0sgBjbhao2vO/lE9nkOh1oIbAcqh3rXXiC6HMEsyNmOhxc18bUUk8KGDbzlwITg5sBrFzpEDfV9KnwVWvYVBSCgQ36cE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=Z8NqhFEf8Fvku86AUBmfERbhqkjUKqdlmIojfDTnDYA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rPwmn4p0A0oXe0H9DDOMGEfF147vHDVrGbYF93AVMrLe0LJiHgtUMP4IVx/EP0QtrchWoNCG8ZheWjeWHt8m4W6I9zlIM6byPr0doaZXcZvKsWSFuZT2kzPBaCWf8cQGeJ6X8gdLKoc2q5xIMLY+KiHJxwkCA71y1hNIhQLobF8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HPk9IpdM; 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="HPk9IpdM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9572BC116B1; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=Z8NqhFEf8Fvku86AUBmfERbhqkjUKqdlmIojfDTnDYA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HPk9IpdMlLa6wmBnftfH+GgxTDFPHUV5Zr5zGHqUl++tUFPjYGk4T67AWyonAPVut wCj85L0v7BLOs/4K0RjQN+6S3png9QVoaRHQ+JHfY+o2/SZcoZ0qqKwDQDZLSdFxc3 ostT9nRbAY+5YrTgPE2SrB7XZJtJLerrE3hCuOuvhSN/MNPvn9e0ChLHe+8LWQbaTU S4FnoU+e/rZexxP4fXpSp93G0W5oEyMsVVajvjskI/cl9hsFZ5KybsOZ6gdNjv7y4+ zmkNv7TdmXg/WetF2Uvw9gUeoeGbs5OZ2FLcNAoHRnyyGsGwymx+axNWmgfg8XjflO bMPPKOFJhncKQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002oE-21g6; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Peter Ujfalusi Subject: [PATCH 13/15] dmaengine: ti: dma-crossbar: fix device leak on am335x route allocation Date: Mon, 17 Nov 2025 17:12:56 +0100 Message-ID: <20251117161258.10679-15-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the crossbar platform device during am335x route allocation. Fixes: 42dbdcc6bf96 ("dmaengine: ti-dma-crossbar: Add support for crossbar = on AM33xx/AM43xx") Cc: stable@vger.kernel.org # 4.4 Cc: Peter Ujfalusi Signed-off-by: Johan Hovold --- drivers/dma/ti/dma-crossbar.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/dma/ti/dma-crossbar.c b/drivers/dma/ti/dma-crossbar.c index e52b0e139900..ff05b150ad37 100644 --- a/drivers/dma/ti/dma-crossbar.c +++ b/drivers/dma/ti/dma-crossbar.c @@ -79,34 +79,35 @@ static void *ti_am335x_xbar_route_allocate(struct of_ph= andle_args *dma_spec, { struct platform_device *pdev =3D of_find_device_by_node(ofdma->of_node); struct ti_am335x_xbar_data *xbar =3D platform_get_drvdata(pdev); - struct ti_am335x_xbar_map *map; + struct ti_am335x_xbar_map *map =3D ERR_PTR(-EINVAL); =20 if (dma_spec->args_count !=3D 3) - return ERR_PTR(-EINVAL); + goto out_put_pdev; =20 if (dma_spec->args[2] >=3D xbar->xbar_events) { dev_err(&pdev->dev, "Invalid XBAR event number: %d\n", dma_spec->args[2]); - return ERR_PTR(-EINVAL); + goto out_put_pdev; } =20 if (dma_spec->args[0] >=3D xbar->dma_requests) { dev_err(&pdev->dev, "Invalid DMA request line number: %d\n", dma_spec->args[0]); - return ERR_PTR(-EINVAL); + goto out_put_pdev; } =20 /* The of_node_put() will be done in the core for the node */ dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", 0); if (!dma_spec->np) { dev_err(&pdev->dev, "Can't get DMA master\n"); - return ERR_PTR(-EINVAL); + goto out_put_pdev; } =20 map =3D kzalloc(sizeof(*map), GFP_KERNEL); if (!map) { of_node_put(dma_spec->np); - return ERR_PTR(-ENOMEM); + map =3D ERR_PTR(-ENOMEM); + goto out_put_pdev; } =20 map->dma_line =3D (u16)dma_spec->args[0]; @@ -120,6 +121,9 @@ static void *ti_am335x_xbar_route_allocate(struct of_ph= andle_args *dma_spec, =20 ti_am335x_xbar_write(xbar->iomem, map->dma_line, map->mux_val); =20 +out_put_pdev: + put_device(&pdev->dev); + return map; } =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 A089C2D0C90; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=Na8WVomDrkjc9+6NCndrTP2EJcxsM54gRtkcSi19LXGTzsRDGQ4HHaXapkJAJmgXZFWrOMWJbL8BMp6nwMZi8KZK7mpYl33bvx8r5zQEovkgSoCSexTjXSaC+K9uQ92+q03ZnAOrc+Fzjb4HiMXzcaQtA6IwSKQAUFAFcV4UoWU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=d7H3wTk9NdknnpBJr/9afEsXCffQd73eDOt2Nt3ybZ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CLMxMXmXwjhELd8SxbpCTPwfUljaIgbHs0IYaASDvRoRFuRw8MhQvkUaOG7bvFZs0c3ZLTVq+rG0fVKl5QcvMc9EvE0hKNSs/+/qE1CgOkA8MgXxILtTkFJxkTzXgenMJLNQgcmByrMc/J2tdEReWVmD6a9lScbDJQnza6IEznQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CjS8KJPJ; 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="CjS8KJPJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7E7C8C19423; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=d7H3wTk9NdknnpBJr/9afEsXCffQd73eDOt2Nt3ybZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CjS8KJPJCByvMHTF4347x3gr8PW4ITg0Gu5RrU3h6d2rkE1NDRc0DJDew1jGM8ncU UvpoTBZf4S2iJSPunnodDJO1HDyvcgNqFdjWxB7I+6qTGZe0fW3bolp1FpkPnOga1X y3MeRd9i/tIDDBH0n/qzhakhFTqIVum7wMhXdTWBZwsAQ9NFz0ob+NtqFblDEjlEl1 Sz/lWHdpnxihVwKRJluxNqPpx8C0tp7GRhc0+mm6jo/bE3OLtlkVAsNg+EUj9Hxvdf FaYGF10oHsRUr0pOAIYJjMLeGj2XTwJ0kSAZ6SwmZzOQAjK3GJvJqktipjSohsDMFN VQvd2XUbmXsYg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002oH-2QU9; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 14/15] dmaengine: ti: dma-crossbar: clean up dra7x route allocation error paths Date: Mon, 17 Nov 2025 17:12:57 +0100 Message-ID: <20251117161258.10679-16-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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" Use a common exit path to drop the cross platform device reference on errors for consistency with am335x. Signed-off-by: Johan Hovold --- drivers/dma/ti/dma-crossbar.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/dma/ti/dma-crossbar.c b/drivers/dma/ti/dma-crossbar.c index ff05b150ad37..e04077d542d2 100644 --- a/drivers/dma/ti/dma-crossbar.c +++ b/drivers/dma/ti/dma-crossbar.c @@ -245,28 +245,26 @@ static void *ti_dra7_xbar_route_allocate(struct of_ph= andle_args *dma_spec, { struct platform_device *pdev =3D of_find_device_by_node(ofdma->of_node); struct ti_dra7_xbar_data *xbar =3D platform_get_drvdata(pdev); - struct ti_dra7_xbar_map *map; + struct ti_dra7_xbar_map *map =3D ERR_PTR(-EINVAL); =20 if (dma_spec->args[0] >=3D xbar->xbar_requests) { dev_err(&pdev->dev, "Invalid XBAR request number: %d\n", dma_spec->args[0]); - put_device(&pdev->dev); - return ERR_PTR(-EINVAL); + goto out_put_pdev; } =20 /* The of_node_put() will be done in the core for the node */ dma_spec->np =3D of_parse_phandle(ofdma->of_node, "dma-masters", 0); if (!dma_spec->np) { dev_err(&pdev->dev, "Can't get DMA master\n"); - put_device(&pdev->dev); - return ERR_PTR(-EINVAL); + goto out_put_pdev; } =20 map =3D kzalloc(sizeof(*map), GFP_KERNEL); if (!map) { of_node_put(dma_spec->np); - put_device(&pdev->dev); - return ERR_PTR(-ENOMEM); + map =3D ERR_PTR(-ENOMEM); + goto out_put_pdev; } =20 mutex_lock(&xbar->mutex); @@ -277,8 +275,8 @@ static void *ti_dra7_xbar_route_allocate(struct of_phan= dle_args *dma_spec, dev_err(&pdev->dev, "Run out of free DMA requests\n"); kfree(map); of_node_put(dma_spec->np); - put_device(&pdev->dev); - return ERR_PTR(-ENOMEM); + map =3D ERR_PTR(-ENOMEM); + goto out_put_pdev; } set_bit(map->xbar_out, xbar->dma_inuse); mutex_unlock(&xbar->mutex); @@ -292,6 +290,7 @@ static void *ti_dra7_xbar_route_allocate(struct of_phan= dle_args *dma_spec, =20 ti_dra7_xbar_write(xbar->iomem, map->xbar_out, map->xbar_in); =20 +out_put_pdev: put_device(&pdev->dev); =20 return map; --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 D00682D23A8; Mon, 17 Nov 2025 16:13:25 +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=1763396005; cv=none; b=bkcBosAnOgNnQnGQz2cKJ/dXnq5fBXP5lGJk0FHCkvItO2nuA59A1IQgaSlUQElouqakmDQo8VgoRnNoHZzWEmZmjsNMbVgG4w41wIGlkHkvewX8xzxeChw1jCdapiH2Oj1iGgj9JwY41RjVCWFb4EWcbawuzqgcswR+h364x90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=AriYcLx5dNNAKOVwHc1ayU8f+JVccX083sw071ekSEA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Mgt3JC0vFubetvQeYkFx9A9wNl5t8y+mJHEQPTqAgD7hf0H7QHMdocy2eyGTEudlyuoyMP1R0aGIrrxdc5obuaqqv9MD/uopaU7+rkeFnOSiWJQosoqyvAEKiaZAbrmA5BxBYmTsys8u5l3RN+xX7lW/pvMu818QmrmORGXlc/U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hT6H2mov; 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="hT6H2mov" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8124C113D0; Mon, 17 Nov 2025 16:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396005; bh=AriYcLx5dNNAKOVwHc1ayU8f+JVccX083sw071ekSEA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hT6H2movz5qHJg2r8TLZbGJPKAspN17fCMGqom/NOeHDqZQorPt5+xC/YkT8nFd3h 5gYnBZSFzwqcY6T85m4VftThKWO8u7QHGlCOYaqeNdSpwwoiJD/OMW0rFIW72kIpGd X9crdyURpHP4njoxgz3B3TeEVZL1rpfiM7SGJ4qfWQUwDA40RKT6uKmRsKy9Pg1/xP X6APTdwxfX/7/tRTi7NHfzLlx9/uvnJ0kRt16HulH1Y4hGeccRDLQdwURDrUp+/oFn C0uGnuN1dbM2zCq3hNgnDAmBk3zteaJ4WtXkVLY74j4kD5W+qRD4jpdabaRKldpGWY Lu+Hx0b/iDG7w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r1-000000002oL-2qg0; Mon, 17 Nov 2025 17:13:23 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Grygorii Strashko , Yu Kuai Subject: [PATCH 15/15] dmaengine: ti: k3-udma: fix device leak on udma lookup Date: Mon, 17 Nov 2025 17:12:58 +0100 Message-ID: <20251117161258.10679-17-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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 when looking up the UDMA platform device. Note that holding a reference to a platform device does not prevent its driver data from going away so there is no point in keeping the reference after the lookup helper returns. Fixes: d70241913413 ("dmaengine: ti: k3-udma: Add glue layer for non DMAeng= ine users") Fixes: 1438cde8fe9c ("dmaengine: ti: k3-udma: add missing put_device() call= in of_xudma_dev_get()") Cc: stable@vger.kernel.org # 5.6: 1438cde8fe9c Cc: Grygorii Strashko Cc: Yu Kuai Signed-off-by: Johan Hovold --- drivers/dma/ti/k3-udma-private.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/ti/k3-udma-private.c b/drivers/dma/ti/k3-udma-priv= ate.c index 05228bf00033..624360423ef1 100644 --- a/drivers/dma/ti/k3-udma-private.c +++ b/drivers/dma/ti/k3-udma-private.c @@ -42,9 +42,9 @@ struct udma_dev *of_xudma_dev_get(struct device_node *np,= const char *property) } =20 ud =3D platform_get_drvdata(pdev); + put_device(&pdev->dev); if (!ud) { pr_debug("UDMA has not been probed\n"); - put_device(&pdev->dev); return ERR_PTR(-EPROBE_DEFER); } =20 --=20 2.51.0 From nobody Tue Dec 2 02:52:29 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 E0E312C11D6; Mon, 17 Nov 2025 16:13:24 +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=1763396005; cv=none; b=GsGGpPdEFOE23NP5+bSg/TCzT1U//2JgzvI9xZMoI0B6vlk6ho+V/mmG16+Yr5DfD09qdZCa0P9kkote3QwWs098SAuhcsUi5aq+MQBD3YRMYTO7ESrZqzTtDgnA8nJXIqg261fCy28wnci28TpNoAee63qJn25ZgjN2DVC5ga0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763396005; c=relaxed/simple; bh=xqte167/CtIiIs1bxGMyVe2Cfffz/PRiyeDV54//dVY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gVEFmyn8PlqvtQgxbgfoyxkikyEUUYJI6GNTvS0lV1haZs/kAPr9et/wdaIqgd9lDebZuIrQUvQNIg8xreA/CyfZmDpxl812h5excitR1Z3gYvGnCynxUc9/K/YTJH65R1dMpXQ4L7qZAhqIx89k/k/lYLcJaiNvPKPjiPuoS+E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CQgsC16k; 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="CQgsC16k" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 54272C4AF09; Mon, 17 Nov 2025 16:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1763396004; bh=xqte167/CtIiIs1bxGMyVe2Cfffz/PRiyeDV54//dVY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CQgsC16k8V6Sg/ucP2QIqWr6agZawMt+/N1u9gIP2aQrY1wNwAtMqxVdGwm+87MAT En/J3fuXzlir+xgHP5fIa9FWITpGKOZx8BYfOHSWKVjNUK/7tRlKYu7p9BGvygwzzZ MFxWmTNsDuMwPr01w6/YsuQ3H6YdhXdp6KbpdpvBi+WwLcHDI+oKn4KRIk2P9Gq+pO 9Iwk7SiKGMRbg4inIQuicCAbeAb8/Sd4OxDjZTYAF41VCaN4La/MZWNRmNCg2Jzw4F DpZIFfkYcoGOdtnYNDu6KHK/hLp4g9z/QRdwd7F/xzLHbO4J11kaHXEGsHLjJ5hzc5 PuX25ssfmY3UQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1vL1r0-000000002nW-1gOj; Mon, 17 Nov 2025 17:13:22 +0100 From: Johan Hovold To: Vinod Koul Cc: Ludovic Desroches , Viresh Kumar , Andy Shevchenko , Vinicius Costa Gomes , Dave Jiang , Vladimir Zapolskiy , Piotr Wojtaszczyk , =?UTF-8?q?Am=C3=A9lie=20Delaunay?= , Maxime Coquelin , Alexandre Torgue , Peter Ujfalusi , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH] dmaengine: ti: k3-udma: enable compile testing Date: Mon, 17 Nov 2025 17:12:44 +0100 Message-ID: <20251117161258.10679-3-johan@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251117161258.10679-1-johan@kernel.org> References: <20251117161258.10679-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" There does not seem to be anything preventing the K3 UDMA drivers from being compile tested (on arm64 as one dependency depends on ARM64) so enable compile testing for wider build coverage. Note that the ring accelerator dependency can only be selected when "TI SOC drivers support" (SOC_TI) is enabled so select that option too. Signed-off-by: Johan Hovold --- drivers/dma/ti/Kconfig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/dma/ti/Kconfig b/drivers/dma/ti/Kconfig index dbf168146d35..cbc30ab62783 100644 --- a/drivers/dma/ti/Kconfig +++ b/drivers/dma/ti/Kconfig @@ -36,11 +36,12 @@ config DMA_OMAP =20 config TI_K3_UDMA tristate "Texas Instruments UDMA support" - depends on ARCH_K3 + depends on ARCH_K3 || COMPILE_TEST depends on TI_SCI_PROTOCOL depends on TI_SCI_INTA_IRQCHIP select DMA_ENGINE select DMA_VIRTUAL_CHANNELS + select SOC_TI select TI_K3_RINGACC select TI_K3_PSIL help @@ -49,7 +50,7 @@ config TI_K3_UDMA =20 config TI_K3_UDMA_GLUE_LAYER tristate "Texas Instruments UDMA Glue layer for non DMAengine users" - depends on ARCH_K3 + depends on ARCH_K3 || COMPILE_TEST depends on TI_K3_UDMA help Say y here to support the K3 NAVSS DMA glue interface --=20 2.51.0