diff options
| author | Johan Hovold <johan@kernel.org> | 2025-11-17 17:12:47 +0100 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2025-12-14 14:47:24 +0530 |
| commit | ec25e60f9f95464aa11411db31d0906b3fb7b9f2 (patch) | |
| tree | 1083279b23d69e1fa0c8c6cdb5ff7a7f98dcc1f4 /drivers | |
| parent | 7bb7d696e0361bbfc1411462c784998cca0afcbb (diff) | |
| download | lwn-ec25e60f9f95464aa11411db31d0906b3fb7b9f2.tar.gz lwn-ec25e60f9f95464aa11411db31d0906b3fb7b9f2.zip | |
dmaengine: dw: dmamux: fix OF node leak on route allocation failure
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 support")
Cc: stable@vger.kernel.org # 5.19
Cc: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://patch.msgid.link/20251117161258.10679-6-johan@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/dma/dw/rzn1-dmamux.c | 4 |
1 files changed, 3 insertions, 1 deletions
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, if (test_and_set_bit(map->req_idx, dmamux->used_chans)) { ret = -EBUSY; - goto free_map; + goto put_dma_spec_np; } mask = BIT(map->req_idx); @@ -103,6 +103,8 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec, 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: |
