mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-04 10:56:49 +07:00
crypto: qat - fix leak on error path
Fix a leak on error path in qat asym Reported-by: Salvatore Benedetto <salvatore.benedetto@intel.com> Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
28856a9e52
commit
26d52ea39b
@ -340,14 +340,16 @@ static int qat_rsa_enc(struct akcipher_request *req)
|
|||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return -EINPROGRESS;
|
return -EINPROGRESS;
|
||||||
unmap_src:
|
|
||||||
if (qat_req->src_align)
|
if (!dma_mapping_error(dev, qat_req->phy_out))
|
||||||
dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
|
dma_unmap_single(dev, qat_req->phy_out,
|
||||||
qat_req->in.enc.m);
|
sizeof(struct qat_rsa_output_params),
|
||||||
else
|
DMA_TO_DEVICE);
|
||||||
if (!dma_mapping_error(dev, qat_req->in.enc.m))
|
unmap_in_params:
|
||||||
dma_unmap_single(dev, qat_req->in.enc.m, ctx->key_sz,
|
if (!dma_mapping_error(dev, qat_req->phy_in))
|
||||||
DMA_TO_DEVICE);
|
dma_unmap_single(dev, qat_req->phy_in,
|
||||||
|
sizeof(struct qat_rsa_input_params),
|
||||||
|
DMA_TO_DEVICE);
|
||||||
unmap_dst:
|
unmap_dst:
|
||||||
if (qat_req->dst_align)
|
if (qat_req->dst_align)
|
||||||
dma_free_coherent(dev, ctx->key_sz, qat_req->dst_align,
|
dma_free_coherent(dev, ctx->key_sz, qat_req->dst_align,
|
||||||
@ -356,15 +358,14 @@ static int qat_rsa_enc(struct akcipher_request *req)
|
|||||||
if (!dma_mapping_error(dev, qat_req->out.enc.c))
|
if (!dma_mapping_error(dev, qat_req->out.enc.c))
|
||||||
dma_unmap_single(dev, qat_req->out.enc.c, ctx->key_sz,
|
dma_unmap_single(dev, qat_req->out.enc.c, ctx->key_sz,
|
||||||
DMA_FROM_DEVICE);
|
DMA_FROM_DEVICE);
|
||||||
unmap_in_params:
|
unmap_src:
|
||||||
if (!dma_mapping_error(dev, qat_req->phy_in))
|
if (qat_req->src_align)
|
||||||
dma_unmap_single(dev, qat_req->phy_in,
|
dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
|
||||||
sizeof(struct qat_rsa_input_params),
|
qat_req->in.enc.m);
|
||||||
DMA_TO_DEVICE);
|
else
|
||||||
if (!dma_mapping_error(dev, qat_req->phy_out))
|
if (!dma_mapping_error(dev, qat_req->in.enc.m))
|
||||||
dma_unmap_single(dev, qat_req->phy_out,
|
dma_unmap_single(dev, qat_req->in.enc.m, ctx->key_sz,
|
||||||
sizeof(struct qat_rsa_output_params),
|
DMA_TO_DEVICE);
|
||||||
DMA_TO_DEVICE);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,14 +473,16 @@ static int qat_rsa_dec(struct akcipher_request *req)
|
|||||||
|
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return -EINPROGRESS;
|
return -EINPROGRESS;
|
||||||
unmap_src:
|
|
||||||
if (qat_req->src_align)
|
if (!dma_mapping_error(dev, qat_req->phy_out))
|
||||||
dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
|
dma_unmap_single(dev, qat_req->phy_out,
|
||||||
qat_req->in.dec.c);
|
sizeof(struct qat_rsa_output_params),
|
||||||
else
|
DMA_TO_DEVICE);
|
||||||
if (!dma_mapping_error(dev, qat_req->in.dec.c))
|
unmap_in_params:
|
||||||
dma_unmap_single(dev, qat_req->in.dec.c, ctx->key_sz,
|
if (!dma_mapping_error(dev, qat_req->phy_in))
|
||||||
DMA_TO_DEVICE);
|
dma_unmap_single(dev, qat_req->phy_in,
|
||||||
|
sizeof(struct qat_rsa_input_params),
|
||||||
|
DMA_TO_DEVICE);
|
||||||
unmap_dst:
|
unmap_dst:
|
||||||
if (qat_req->dst_align)
|
if (qat_req->dst_align)
|
||||||
dma_free_coherent(dev, ctx->key_sz, qat_req->dst_align,
|
dma_free_coherent(dev, ctx->key_sz, qat_req->dst_align,
|
||||||
@ -488,15 +491,14 @@ static int qat_rsa_dec(struct akcipher_request *req)
|
|||||||
if (!dma_mapping_error(dev, qat_req->out.dec.m))
|
if (!dma_mapping_error(dev, qat_req->out.dec.m))
|
||||||
dma_unmap_single(dev, qat_req->out.dec.m, ctx->key_sz,
|
dma_unmap_single(dev, qat_req->out.dec.m, ctx->key_sz,
|
||||||
DMA_FROM_DEVICE);
|
DMA_FROM_DEVICE);
|
||||||
unmap_in_params:
|
unmap_src:
|
||||||
if (!dma_mapping_error(dev, qat_req->phy_in))
|
if (qat_req->src_align)
|
||||||
dma_unmap_single(dev, qat_req->phy_in,
|
dma_free_coherent(dev, ctx->key_sz, qat_req->src_align,
|
||||||
sizeof(struct qat_rsa_input_params),
|
qat_req->in.dec.c);
|
||||||
DMA_TO_DEVICE);
|
else
|
||||||
if (!dma_mapping_error(dev, qat_req->phy_out))
|
if (!dma_mapping_error(dev, qat_req->in.dec.c))
|
||||||
dma_unmap_single(dev, qat_req->phy_out,
|
dma_unmap_single(dev, qat_req->in.dec.c, ctx->key_sz,
|
||||||
sizeof(struct qat_rsa_output_params),
|
DMA_TO_DEVICE);
|
||||||
DMA_TO_DEVICE);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user