Skip to content

Commit

Permalink
cypto: mediatek - fix leaks in mtk_desc_ring_alloc
Browse files Browse the repository at this point in the history
[ Upstream commit 228d284 ]

In the init loop, if an error occurs in function 'dma_alloc_coherent',
then goto the err_cleanup section, after run i--,
in the array ring, the struct mtk_ring with index i will not be released,
causing memory leaks

Fixes: 785e5c6 ("crypto: mediatek - Add crypto driver support for some MediaTek chips")
Cc: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Xiaoliang Pang <dawning.pang@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Xiaoliang Pang authored and gregkh committed Oct 29, 2020
1 parent cc0f250 commit 7fb2714
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/crypto/mediatek/mtk-platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,13 +469,13 @@ static int mtk_desc_ring_alloc(struct mtk_cryp *cryp)
return 0;

err_cleanup:
for (; i--; ) {
do {
dma_free_coherent(cryp->dev, MTK_DESC_RING_SZ,
ring[i]->res_base, ring[i]->res_dma);
dma_free_coherent(cryp->dev, MTK_DESC_RING_SZ,
ring[i]->cmd_base, ring[i]->cmd_dma);
kfree(ring[i]);
}
} while (i--);
return -ENOMEM;
}

Expand Down

0 comments on commit 7fb2714

Please sign in to comment.