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