Spdk/test/unit/lib/nvme
Alexey Marchuk 00277bc5d5 nvme/rdma: Fix searching for qpair by qp_num
Poll group holds lists of qpairs in different states and
when we got rdma completion with error, we iterate these
lists to find a qpair which qp_num matches. qp_num
is stored inside of ibv_qp which belongs to spdk_rdma_qp
structure. When nvme_rdma_qpair is disconnected, pointer
to spdk_rdma_qp is cleaned but qpair may still exist in
poll group list and when we start searhing for qpair by
qp_num we may dereference NULL pointer.

This patch adds a check that pointer to spdk_rdma_qp
is valid before dereferencing it. To minimize boilerplate code,
wrap all check in macro. Add unit test to verify this fix.

Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Change-Id: I1925f93efb633fd5c176323d3bbd3641a1a632a9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9050
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-09-08 08:04:04 +00:00
..
nvme_ctrlr_cmd.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_ctrlr_ocssd_cmd.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_ctrlr.c nvme: Eliminate CONSTRUCT_NS state 2021-09-03 08:07:25 +00:00
nvme_cuse.c nvme: No longer allocate arrays of size NN in cuse handling 2021-09-03 08:07:25 +00:00
nvme_fabric.c nvme: add async+poll APIs for nvme_fabric_qpair_connect 2021-08-31 08:38:16 +00:00
nvme_io_msg.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_ns_cmd.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_ns_ocssd_cmd.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_ns.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_opal.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_pcie_common.c nvme: add tracing to pcie request path 2021-09-08 08:03:20 +00:00
nvme_pcie.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_poll_group.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_qpair.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_quirks.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme_rdma.c nvme/rdma: Fix searching for qpair by qp_num 2021-09-08 08:04:04 +00:00
nvme_tcp.c nvme/tcp: connect qpairs asynchronously 2021-08-31 08:38:16 +00:00
nvme_transport.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme.c test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
Makefile test/nvme_opal: build nvme_opal unittest file 2021-06-07 07:24:47 +00:00