diff options
| author | Wentao Liang <vulab@iscas.ac.cn> | 2026-06-25 22:18:37 +0800 |
|---|---|---|
| committer | Damien Le Moal <dlemoal@kernel.org> | 2026-07-03 13:44:18 +0900 |
| commit | fcaf242e7fc406e78f444a35441e3b58f5e28781 (patch) | |
| tree | 19b068e81cecb92eac0b1f3cbb83e0bf4da41a65 | |
| parent | c0ace4130e813acbabdfaa28d4e94a849c2ffdd7 (diff) | |
| download | linux-fcaf242e7fc406e78f444a35441e3b58f5e28781.tar.gz linux-fcaf242e7fc406e78f444a35441e3b58f5e28781.zip | |
ata: pata_pxa: Fix DMA channel leak on probe error
When dmaengine_slave_config() fails, the DMA channel acquired by
dma_request_chan() is not released before returning the error,
leaking the channel reference.
Fix by adding dma_release_channel() in the error path.
The ata_host_activate() error path already correctly releases the
DMA channel.
Cc: stable@vger.kernel.org
Fixes: 88622d80af82 ("ata: pata_pxa: dmaengine conversion")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
| -rw-r--r-- | drivers/ata/pata_pxa.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/ata/pata_pxa.c b/drivers/ata/pata_pxa.c index 03dbaf4a13a7..9f63bdfb8576 100644 --- a/drivers/ata/pata_pxa.c +++ b/drivers/ata/pata_pxa.c @@ -286,6 +286,7 @@ static int pxa_ata_probe(struct platform_device *pdev) ret = dmaengine_slave_config(data->dma_chan, &config); if (ret < 0) { dev_err(&pdev->dev, "dma configuration failed: %d\n", ret); + dma_release_channel(data->dma_chan); return ret; } |
