Torsten Duwe 21b5b5
From 072d36eefd6fde17928d214df64fdac32f60b4f4 Mon Sep 17 00:00:00 2001
Torsten Duwe 21b5b5
From: Damian Muszynski <damian.muszynski@intel.com>
Torsten Duwe 21b5b5
Date: Fri, 9 Sep 2022 11:49:14 +0100
Torsten Duwe 21b5b5
Subject: [PATCH] crypto: qat - use reference to structure in dma_map_single()
Torsten Duwe 21b5b5
Git-commit: 072d36eefd6fde17928d214df64fdac32f60b4f4
Torsten Duwe 21b5b5
Patch-mainline: v6.1-rc1
Torsten Duwe 21b5b5
References: jsc#PED-1073
Torsten Duwe 21b5b5
Torsten Duwe 21b5b5
When mapping the input and output parameters, the implementations of RSA
Torsten Duwe 21b5b5
and DH pass to the function dma_map_single() a pointer to the first
Torsten Duwe 21b5b5
member of the structure they want to map instead of a pointer to the
Torsten Duwe 21b5b5
actual structure.
Torsten Duwe 21b5b5
This results in set of warnings reported by the static analyser Smatch:
Torsten Duwe 21b5b5
Torsten Duwe 21b5b5
    drivers/crypto/qat/qat_common/qat_asym_algs.c:335 qat_dh_compute_value() error: dma_map_single_attrs() '&qat_req->in.dh.in.b' too small (8 vs 64)
Torsten Duwe 21b5b5
    drivers/crypto/qat/qat_common/qat_asym_algs.c:341 qat_dh_compute_value() error: dma_map_single_attrs() '&qat_req->out.dh.r' too small (8 vs 64)
Torsten Duwe 21b5b5
    drivers/crypto/qat/qat_common/qat_asym_algs.c:732 qat_rsa_enc() error: dma_map_single_attrs() '&qat_req->in.rsa.enc.m' too small (8 vs 64)
Torsten Duwe 21b5b5
    drivers/crypto/qat/qat_common/qat_asym_algs.c:738 qat_rsa_enc() error: dma_map_single_attrs() '&qat_req->out.rsa.enc.c' too small (8 vs 64)
Torsten Duwe 21b5b5
    drivers/crypto/qat/qat_common/qat_asym_algs.c:878 qat_rsa_dec() error: dma_map_single_attrs() '&qat_req->in.rsa.dec.c' too small (8 vs 64)
Torsten Duwe 21b5b5
    drivers/crypto/qat/qat_common/qat_asym_algs.c:884 qat_rsa_dec() error: dma_map_single_attrs() '&qat_req->out.rsa.dec.m' too small (8 vs 64)
Torsten Duwe 21b5b5
Torsten Duwe 21b5b5
Where the address of the first element of a structure is used as an
Torsten Duwe 21b5b5
input for the function dma_map_single(), replace it with the address of
Torsten Duwe 21b5b5
the structure. This fix does not introduce any functional change as the
Torsten Duwe 21b5b5
addresses are the same.
Torsten Duwe 21b5b5
Torsten Duwe 21b5b5
Signed-off-by: Damian Muszynski <damian.muszynski@intel.com>
Torsten Duwe 21b5b5
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe 21b5b5
Reviewed-by: Adam Guerin <adam.guerin@intel.com>
Torsten Duwe 21b5b5
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Torsten Duwe 21b5b5
Signed-off-by: Torsten Duwe <duwe@suse.de>
Torsten Duwe 21b5b5
Torsten Duwe 21b5b5
---
Torsten Duwe 21b5b5
 drivers/crypto/qat/qat_common/qat_asym_algs.c | 12 ++++++------
Torsten Duwe 21b5b5
 1 file changed, 6 insertions(+), 6 deletions(-)
Torsten Duwe 21b5b5
Torsten Duwe 21b5b5
diff --git a/drivers/crypto/qat/qat_common/qat_asym_algs.c b/drivers/crypto/qat/qat_common/qat_asym_algs.c
Torsten Duwe 21b5b5
index 85b0f30712e16..94a26702aeae1 100644
Torsten Duwe 21b5b5
--- a/drivers/crypto/qat/qat_common/qat_asym_algs.c
Torsten Duwe 21b5b5
+++ b/drivers/crypto/qat/qat_common/qat_asym_algs.c
Torsten Duwe 21b5b5
@@ -332,13 +332,13 @@ static int qat_dh_compute_value(struct kpp_request *req)
Torsten Duwe 21b5b5
 	qat_req->in.dh.in_tab[n_input_params] = 0;
Torsten Duwe 21b5b5
 	qat_req->out.dh.out_tab[1] = 0;
Torsten Duwe 21b5b5
 	/* Mapping in.in.b or in.in_g2.xa is the same */
Torsten Duwe 21b5b5
-	qat_req->phy_in = dma_map_single(dev, &qat_req->in.dh.in.b,
Torsten Duwe 21b5b5
+	qat_req->phy_in = dma_map_single(dev, &qat_req->in.dh,
Torsten Duwe 21b5b5
 					 sizeof(struct qat_dh_input_params),
Torsten Duwe 21b5b5
 					 DMA_TO_DEVICE);
Torsten Duwe 21b5b5
 	if (unlikely(dma_mapping_error(dev, qat_req->phy_in)))
Torsten Duwe 21b5b5
 		goto unmap_dst;
Torsten Duwe 21b5b5
 
Torsten Duwe 21b5b5
-	qat_req->phy_out = dma_map_single(dev, &qat_req->out.dh.r,
Torsten Duwe 21b5b5
+	qat_req->phy_out = dma_map_single(dev, &qat_req->out.dh,
Torsten Duwe 21b5b5
 					  sizeof(struct qat_dh_output_params),
Torsten Duwe 21b5b5
 					  DMA_TO_DEVICE);
Torsten Duwe 21b5b5
 	if (unlikely(dma_mapping_error(dev, qat_req->phy_out)))
Torsten Duwe 21b5b5
@@ -729,13 +729,13 @@ static int qat_rsa_enc(struct akcipher_request *req)
Torsten Duwe 21b5b5
 
Torsten Duwe 21b5b5
 	qat_req->in.rsa.in_tab[3] = 0;
Torsten Duwe 21b5b5
 	qat_req->out.rsa.out_tab[1] = 0;
Torsten Duwe 21b5b5
-	qat_req->phy_in = dma_map_single(dev, &qat_req->in.rsa.enc.m,
Torsten Duwe 21b5b5
+	qat_req->phy_in = dma_map_single(dev, &qat_req->in.rsa,
Torsten Duwe 21b5b5
 					 sizeof(struct qat_rsa_input_params),
Torsten Duwe 21b5b5
 					 DMA_TO_DEVICE);
Torsten Duwe 21b5b5
 	if (unlikely(dma_mapping_error(dev, qat_req->phy_in)))
Torsten Duwe 21b5b5
 		goto unmap_dst;
Torsten Duwe 21b5b5
 
Torsten Duwe 21b5b5
-	qat_req->phy_out = dma_map_single(dev, &qat_req->out.rsa.enc.c,
Torsten Duwe 21b5b5
+	qat_req->phy_out = dma_map_single(dev, &qat_req->out.rsa,
Torsten Duwe 21b5b5
 					  sizeof(struct qat_rsa_output_params),
Torsten Duwe 21b5b5
 					  DMA_TO_DEVICE);
Torsten Duwe 21b5b5
 	if (unlikely(dma_mapping_error(dev, qat_req->phy_out)))
Torsten Duwe 21b5b5
@@ -875,13 +875,13 @@ static int qat_rsa_dec(struct akcipher_request *req)
Torsten Duwe 21b5b5
 	else
Torsten Duwe 21b5b5
 		qat_req->in.rsa.in_tab[3] = 0;
Torsten Duwe 21b5b5
 	qat_req->out.rsa.out_tab[1] = 0;
Torsten Duwe 21b5b5
-	qat_req->phy_in = dma_map_single(dev, &qat_req->in.rsa.dec.c,
Torsten Duwe 21b5b5
+	qat_req->phy_in = dma_map_single(dev, &qat_req->in.rsa,
Torsten Duwe 21b5b5
 					 sizeof(struct qat_rsa_input_params),
Torsten Duwe 21b5b5
 					 DMA_TO_DEVICE);
Torsten Duwe 21b5b5
 	if (unlikely(dma_mapping_error(dev, qat_req->phy_in)))
Torsten Duwe 21b5b5
 		goto unmap_dst;
Torsten Duwe 21b5b5
 
Torsten Duwe 21b5b5
-	qat_req->phy_out = dma_map_single(dev, &qat_req->out.rsa.dec.m,
Torsten Duwe 21b5b5
+	qat_req->phy_out = dma_map_single(dev, &qat_req->out.rsa,
Torsten Duwe 21b5b5
 					  sizeof(struct qat_rsa_output_params),
Torsten Duwe 21b5b5
 					  DMA_TO_DEVICE);
Torsten Duwe 21b5b5
 	if (unlikely(dma_mapping_error(dev, qat_req->phy_out)))
Torsten Duwe 21b5b5
-- 
Torsten Duwe 21b5b5
2.35.3
Torsten Duwe 21b5b5