Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3ddc979 authored by Christian Engelmayer's avatar Christian Engelmayer Committed by Vinod Koul
Browse files

dma: edma: Fix memory leak in edma_prep_dma_cyclic()



Fix a memory leak in the edma_prep_dma_cyclic() error handling path.

Signed-off-by: default avatarChristian Engelmayer <cengelma@gmx.at>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 51455ec4
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -539,6 +539,7 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic(
				edma_alloc_slot(EDMA_CTLR(echan->ch_num),
						EDMA_SLOT_ANY);
			if (echan->slot[i] < 0) {
				kfree(edesc);
				dev_err(dev, "Failed to allocate slot\n");
				return NULL;
			}
@@ -553,8 +554,10 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic(
		ret = edma_config_pset(chan, &edesc->pset[i], src_addr,
				       dst_addr, burst, dev_width, period_len,
				       direction);
		if (ret < 0)
		if (ret < 0) {
			kfree(edesc);
			return NULL;
		}

		if (direction == DMA_DEV_TO_MEM)
			dst_addr += period_len;