spdk/0025-ut-rdma-Fix-GCC-10.2.0-warning.patch
wangxiaomeng bf0ec636a5 Fix build warning
(cherry picked from commit 6504784893f17f070ead24f4b318d8bae1aea9a0)
2024-04-12 20:49:14 +08:00

95 lines
4.0 KiB
Diff
Raw Permalink 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 dd5d0c45dcfc51acc80f47be0367e25c10b9436f Mon Sep 17 00:00:00 2001
From: Alexey Marchuk <alexeymar@mellanox.com>
Date: Wed, 14 Apr 2021 11:27:38 +0300
Subject: [PATCH] ut/rdma: Fix GCC 10.2.0 warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
rdma_ut.c: In function test_spdk_nvmf_rdma_request_parse_sgl_with_md:
rdma_ut.c:1152:54: warning: array subscript 10 is outside array bounds of struct spdk_nvmf_rdma_request_data[1] [-Warray-bounds]
1152 | aligned_buffer = (void *)((uintptr_t)((char *)&data + NVMF_DATA_BUFFER_MASK) &
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
rdma_ut.c:834:37: note: while referencing data
834 | struct spdk_nvmf_rdma_request_data data;
| ^~~~
The fix is to use array instead of spdk_nvmf_rdma_request_data
structure
Change-Id: I81bd311d26037dcb9340d85abcb4ea45b20a5171
Reported-by: G.Balaji <gbalajieie@gmail.com>
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7365
Community-CI: Broadcom CI
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: <dongx.yi@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
---
test/unit/lib/nvmf/rdma.c/rdma_ut.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/test/unit/lib/nvmf/rdma.c/rdma_ut.c b/test/unit/lib/nvmf/rdma.c/rdma_ut.c
index 8674f52..eb46a4c 100644
--- a/test/unit/lib/nvmf/rdma.c/rdma_ut.c
+++ b/test/unit/lib/nvmf/rdma.c/rdma_ut.c
@@ -836,7 +836,8 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
union nvmf_h2c_msg cmd;
struct spdk_nvme_sgl_descriptor *sgl;
struct spdk_nvme_sgl_descriptor sgl_desc[SPDK_NVMF_MAX_SGL_ENTRIES] = {{0}};
- struct spdk_nvmf_rdma_request_data data;
+ char data_buffer[8192];
+ struct spdk_nvmf_rdma_request_data *data = (struct spdk_nvmf_rdma_request_data *)data_buffer;
char data2_buffer[8192];
struct spdk_nvmf_rdma_request_data *data2 = (struct spdk_nvmf_rdma_request_data *)data2_buffer;
const uint32_t data_bs = 512;
@@ -844,7 +845,7 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
int rc, i;
void *aligned_buffer;
- data.wr.sg_list = data.sgl;
+ data->wr.sg_list = data->sgl;
STAILQ_INIT(&group.group.buf_cache);
group.group.buf_cache_size = 0;
group.group.buf_cache_count = 0;
@@ -1153,8 +1154,8 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
sgl->unkeyed.subtype = SPDK_NVME_SGL_SUBTYPE_OFFSET;
sgl->address = 0;
rdma_req.recv->buf = (void *)&sgl_desc;
- MOCK_SET(spdk_mempool_get, &data);
- aligned_buffer = (void *)((uintptr_t)((char *)&data + NVMF_DATA_BUFFER_MASK) &
+ MOCK_SET(spdk_mempool_get, data_buffer);
+ aligned_buffer = (void *)((uintptr_t)(data_buffer + NVMF_DATA_BUFFER_MASK) &
~NVMF_DATA_BUFFER_MASK);
/* part 1: 2 segments each with 1 wr. io_unit_size is aligned with data_bs + md_size */
@@ -1190,17 +1191,17 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
CU_ASSERT(rdma_req.data.wr.wr.rdma.rkey == 0x44);
CU_ASSERT(rdma_req.data.wr.wr.rdma.remote_addr == 0x4000);
- CU_ASSERT(rdma_req.data.wr.next == &data.wr);
- CU_ASSERT(data.wr.wr.rdma.rkey == 0x44);
- CU_ASSERT(data.wr.wr.rdma.remote_addr == 0x4000 + data_bs * 4);
- CU_ASSERT(data.wr.num_sge == 4);
+ CU_ASSERT(rdma_req.data.wr.next == &data->wr);
+ CU_ASSERT(data->wr.wr.rdma.rkey == 0x44);
+ CU_ASSERT(data->wr.wr.rdma.remote_addr == 0x4000 + data_bs * 4);
+ CU_ASSERT(data->wr.num_sge == 4);
for (i = 0; i < 4; ++i) {
- CU_ASSERT(data.wr.sg_list[i].addr == (uintptr_t)((unsigned char *)aligned_buffer) + i *
+ CU_ASSERT(data->wr.sg_list[i].addr == (uintptr_t)((unsigned char *)aligned_buffer) + i *
(data_bs + md_size));
- CU_ASSERT(data.wr.sg_list[i].length == data_bs);
+ CU_ASSERT(data->wr.sg_list[i].length == data_bs);
}
- CU_ASSERT(data.wr.next == &rdma_req.rsp.wr);
+ CU_ASSERT(data->wr.next == &rdma_req.rsp.wr);
}
int main(int argc, char **argv)
--
2.33.0