Skip to content

Commit d776b25

Browse files
haresh-intelherbertx
authored andcommitted
crypto: qat - unmap buffers before free for RSA
The callback function for RSA frees the memory allocated for the source and destination buffers before unmapping them. This sequence is wrong. Change the cleanup sequence to unmap the buffers before freeing them. Fixes: 3dfaf00 ("crypto: qat - remove dma_free_coherent() for RSA") Signed-off-by: Hareshx Sankar Raj <[email protected]> Co-developed-by: Bolemx Sivanagaleela <[email protected]> Signed-off-by: Bolemx Sivanagaleela <[email protected]> Reviewed-by: Giovanni Cabiddu <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Signed-off-by: Giovanni Cabiddu <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent eb7713f commit d776b25

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

drivers/crypto/intel/qat/qat_common/qat_asym_algs.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -520,22 +520,21 @@ static void qat_rsa_cb(struct icp_qat_fw_pke_resp *resp)
520520

521521
err = (err == ICP_QAT_FW_COMN_STATUS_FLAG_OK) ? 0 : -EINVAL;
522522

523-
kfree_sensitive(req->src_align);
524-
525523
dma_unmap_single(dev, req->in.rsa.enc.m, req->ctx.rsa->key_sz,
526524
DMA_TO_DEVICE);
527525

526+
kfree_sensitive(req->src_align);
527+
528528
areq->dst_len = req->ctx.rsa->key_sz;
529+
dma_unmap_single(dev, req->out.rsa.enc.c, req->ctx.rsa->key_sz,
530+
DMA_FROM_DEVICE);
529531
if (req->dst_align) {
530532
scatterwalk_map_and_copy(req->dst_align, areq->dst, 0,
531533
areq->dst_len, 1);
532534

533535
kfree_sensitive(req->dst_align);
534536
}
535537

536-
dma_unmap_single(dev, req->out.rsa.enc.c, req->ctx.rsa->key_sz,
537-
DMA_FROM_DEVICE);
538-
539538
dma_unmap_single(dev, req->phy_in, sizeof(struct qat_rsa_input_params),
540539
DMA_TO_DEVICE);
541540
dma_unmap_single(dev, req->phy_out,

0 commit comments

Comments
 (0)