dmaengine: dw: dmamux: Fix device reference leak in rzn1_dmamux_route_allocate
commitaa2e1e4563
upstream. The reference taken by of_find_device_by_node() must be released when not needed anymore. Add missing put_device() call to fix device reference leaks. Fixes:134d9c52fc
("dmaengine: dw: dmamux: Introduce RZN1 DMA router support") Cc: stable@vger.kernel.org Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/r/20250902090358.2423285-1-linmq006@gmail.com Signed-off-by: Vinod Koul <vkoul@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
555bd16351
commit
d9c8ad935d
|
@ -46,12 +46,16 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
|
||||||
u32 mask;
|
u32 mask;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (dma_spec->args_count != RNZ1_DMAMUX_NCELLS)
|
if (dma_spec->args_count != RNZ1_DMAMUX_NCELLS) {
|
||||||
return ERR_PTR(-EINVAL);
|
ret = -EINVAL;
|
||||||
|
goto put_device;
|
||||||
|
}
|
||||||
|
|
||||||
map = kzalloc(sizeof(*map), GFP_KERNEL);
|
map = kzalloc(sizeof(*map), GFP_KERNEL);
|
||||||
if (!map)
|
if (!map) {
|
||||||
return ERR_PTR(-ENOMEM);
|
ret = -ENOMEM;
|
||||||
|
goto put_device;
|
||||||
|
}
|
||||||
|
|
||||||
chan = dma_spec->args[0];
|
chan = dma_spec->args[0];
|
||||||
map->req_idx = dma_spec->args[4];
|
map->req_idx = dma_spec->args[4];
|
||||||
|
@ -92,12 +96,15 @@ static void *rzn1_dmamux_route_allocate(struct of_phandle_args *dma_spec,
|
||||||
if (ret)
|
if (ret)
|
||||||
goto clear_bitmap;
|
goto clear_bitmap;
|
||||||
|
|
||||||
|
put_device(&pdev->dev);
|
||||||
return map;
|
return map;
|
||||||
|
|
||||||
clear_bitmap:
|
clear_bitmap:
|
||||||
clear_bit(map->req_idx, dmamux->used_chans);
|
clear_bit(map->req_idx, dmamux->used_chans);
|
||||||
free_map:
|
free_map:
|
||||||
kfree(map);
|
kfree(map);
|
||||||
|
put_device:
|
||||||
|
put_device(&pdev->dev);
|
||||||
|
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue