dpdk/0324-crypto-cnxk-fix-build-with-GCC-12.patch
jiangheng12 7b9cc4c5a2 fix build with GCC 12
(cherry picked from commit d1c19aae07fc1940cea32a797e9bc9b23377f317)
2023-07-12 19:51:01 +08:00

91 lines
3.3 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From e0bff8480fce6437124558f49f608f214c9092be Mon Sep 17 00:00:00 2001
From: Ankur Dwivedi <adwivedi@marvell.com>
Date: Fri, 17 Jun 2022 19:09:30 +0530
Subject: [PATCH] crypto/cnxk: fix build with GCC 12
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit d82d2db2659411059c047a96e867666625a0f1f2 ]
The following warning is observed with GCC 12 compilation:
In file included from ../drivers/crypto/cnxk/cn10k_cryptodev_ops.c:17:
In function fill_sg_comp_from_iov,
inlined from cpt_pdcp_chain_alg_prep at
../drivers/crypto/cnxk/cnxk_se.h:1194:8,
inlined from cpt_fc_enc_hmac_prep at
../drivers/crypto/cnxk/cnxk_se.h:1871:9,
inlined from fill_digest_params at
../drivers/crypto/cnxk/cnxk_se.h:2829:8,
inlined from cpt_sym_inst_fill at
../drivers/crypto/cnxk/cn10k_cryptodev_ops.c:92:9,
inlined from cn10k_cpt_fill_inst.constprop at
../drivers/crypto/cnxk/cn10k_cryptodev_ops.c:146:10:
../drivers/crypto/cnxk/cnxk_se.h:222:52: warning: array subscript 0 is
outside array bounds of struct roc_se_buf_ptr[0] [-Warray-bounds]
222 | e_vaddr = (uint64_t)bufs[j].vaddr;
| ~~~~~~~^~~~~~
../drivers/crypto/cnxk/cnxk_se.h:223:48: warning: array subscript 0 is
outside array bounds of struct roc_se_buf_ptr[0] [-Warray-bounds]
223 | e_len = (size > bufs[j].size) ? bufs[j].size : size;
| ~~~~~~~^~~~~
This patch resolves the warning.
Fixes: 3de331795f73 ("crypto/cnxk: add flexi cipher encryption")
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
Reviewed-by: Anoob Joseph <anoobj@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: David Marchand <david.marchand@redhat.com>
---
drivers/crypto/cnxk/cnxk_se.h | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h
index 37237de21a..99a2894fa6 100644
--- a/drivers/crypto/cnxk/cnxk_se.h
+++ b/drivers/crypto/cnxk/cnxk_se.h
@@ -179,27 +179,27 @@ fill_sg_comp_from_iov(struct roc_se_sglist_comp *list, uint32_t i,
int32_t j;
uint32_t extra_len = extra_buf ? extra_buf->size : 0;
uint32_t size = *psize;
- struct roc_se_buf_ptr *bufs;
- bufs = from->bufs;
for (j = 0; (j < from->buf_cnt) && size; j++) {
+ struct roc_se_sglist_comp *to = &list[i >> 2];
+ uint32_t buf_sz = from->bufs[j].size;
+ void *vaddr = from->bufs[j].vaddr;
uint64_t e_vaddr;
uint32_t e_len;
- struct roc_se_sglist_comp *to = &list[i >> 2];
if (unlikely(from_offset)) {
- if (from_offset >= bufs[j].size) {
- from_offset -= bufs[j].size;
+ if (from_offset >= buf_sz) {
+ from_offset -= buf_sz;
continue;
}
- e_vaddr = (uint64_t)bufs[j].vaddr + from_offset;
- e_len = (size > (bufs[j].size - from_offset)) ?
- (bufs[j].size - from_offset) :
+ e_vaddr = (uint64_t)vaddr + from_offset;
+ e_len = (size > (buf_sz - from_offset)) ?
+ (buf_sz - from_offset) :
size;
from_offset = 0;
} else {
- e_vaddr = (uint64_t)bufs[j].vaddr;
- e_len = (size > bufs[j].size) ? bufs[j].size : size;
+ e_vaddr = (uint64_t)vaddr;
+ e_len = (size > buf_sz) ? buf_sz : size;
}
to->u.s.len[i % 4] = rte_cpu_to_be_16(e_len);
--
2.23.0