Commit eb7713f5 authored by Hareshx Sankar Raj's avatar Hareshx Sankar Raj Committed by Herbert Xu
Browse files

crypto: qat - unmap buffer before free for DH



The callback function for DH frees the memory allocated for the
destination buffer before unmapping it.
This sequence is wrong.

Change the cleanup sequence to unmap the buffer before freeing it.

Fixes: 029aa462 ("crypto: qat - remove dma_free_coherent() for DH")
Signed-off-by: default avatarHareshx Sankar Raj <hareshx.sankar.raj@intel.com>
Co-developed-by: default avatarBolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
Signed-off-by: default avatarBolemx Sivanagaleela <bolemx.sivanagaleela@intel.com>
Reviewed-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent e3023094
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -170,15 +170,14 @@ static void qat_dh_cb(struct icp_qat_fw_pke_resp *resp)
	}

	areq->dst_len = req->ctx.dh->p_size;
	dma_unmap_single(dev, req->out.dh.r, req->ctx.dh->p_size,
			 DMA_FROM_DEVICE);
	if (req->dst_align) {
		scatterwalk_map_and_copy(req->dst_align, areq->dst, 0,
					 areq->dst_len, 1);
		kfree_sensitive(req->dst_align);
	}

	dma_unmap_single(dev, req->out.dh.r, req->ctx.dh->p_size,
			 DMA_FROM_DEVICE);

	dma_unmap_single(dev, req->phy_in, sizeof(struct qat_dh_input_params),
			 DMA_TO_DEVICE);
	dma_unmap_single(dev, req->phy_out,