diff options
| author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2021-01-24 08:09:23 +0100 | 
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2021-01-26 23:01:32 +0530 | 
| commit | fed1b6a00a191cad4dd843519b590e3d6ad9f843 (patch) | |
| tree | 5ad2f3cc864294574874779b27fe35339960e91f | |
| parent | e594443196d6e0ef3d3b30320c49b3a4d4f9a547 (diff) | |
dmaengine: ti: k3-udma: Fix a resource leak in an error handling path
In 'dma_pool_create()', we return -ENOMEM, but don't release the resources
already allocated, as in all the other error handling paths.
Go to 'err_res_free' instead of returning directly.
Fixes: 017794739702 ("dmaengine: ti: k3-udma: Initial support for K3 BCDMA")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Link: https://lore.kernel.org/r/20210124070923.724479-1-christophe.jaillet@wanadoo.fr
Signed-off-by: Vinod Koul <vkoul@kernel.org>
| -rw-r--r-- | drivers/dma/ti/k3-udma.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index 298460438bb4..f474a1232335 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -2401,7 +2401,8 @@ static int bcdma_alloc_chan_resources(struct dma_chan *chan)  			dev_err(ud->ddev.dev,  				"Descriptor pool allocation failed\n");  			uc->use_dma_pool = false; -			return -ENOMEM; +			ret = -ENOMEM; +			goto err_res_free;  		}  		uc->use_dma_pool = true;  | 
