Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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: 3dfaf0071ed7 ("crypto: qat - remove dma_free_coherent() for RSA")
Signed-off-by: Hareshx Sankar Raj <hareshx.sankar.raj@intel.com>
Co-developed-by: Bolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
Signed-off-by: Bolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Hareshx Sankar Raj and committed by
Herbert Xu
d776b254 eb7713f5

+4 -5
+4 -5
drivers/crypto/intel/qat/qat_common/qat_asym_algs.c
··· 520 520 521 521 err = (err == ICP_QAT_FW_COMN_STATUS_FLAG_OK) ? 0 : -EINVAL; 522 522 523 - kfree_sensitive(req->src_align); 524 - 525 523 dma_unmap_single(dev, req->in.rsa.enc.m, req->ctx.rsa->key_sz, 526 524 DMA_TO_DEVICE); 527 525 526 + kfree_sensitive(req->src_align); 527 + 528 528 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); 529 531 if (req->dst_align) { 530 532 scatterwalk_map_and_copy(req->dst_align, areq->dst, 0, 531 533 areq->dst_len, 1); 532 534 533 535 kfree_sensitive(req->dst_align); 534 536 } 535 - 536 - dma_unmap_single(dev, req->out.rsa.enc.c, req->ctx.rsa->key_sz, 537 - DMA_FROM_DEVICE); 538 537 539 538 dma_unmap_single(dev, req->phy_in, sizeof(struct qat_rsa_input_params), 540 539 DMA_TO_DEVICE);