libhns: Fix coredump during QP destruction when send_cq == recv_cq
driver inclusion category: feature bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/IB7JZL ------------------------------------------------------------------ If the specified send CQ and recv CQ are both the same CQ, the QP node in SCQ is not deleted. which causes a segfault to occur when recreating the QP. Here fix it. Signed-off-by: Xinghai Cen <cenxinghai@h-partners.com> (cherry picked from commit a8c29764ee5bbc28c181b8c57a6bd9d2802b25ca)
This commit is contained in:
parent
f0e4558f89
commit
76d34bf06c
@ -0,0 +1,54 @@
|
|||||||
|
From 263479c6fb4712528ccae276960ec94fd77afc51 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yuyu Li <liyuyu6@huawei.com>
|
||||||
|
Date: Mon, 25 Nov 2024 16:13:48 +0800
|
||||||
|
Subject: [PATCH] libhns: Fix coredump during QP destruction when send_cq ==
|
||||||
|
recv_cq
|
||||||
|
|
||||||
|
driver inclusion
|
||||||
|
category: feature
|
||||||
|
bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/IB7JZL
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
If the specified send CQ and recv CQ are both
|
||||||
|
the same CQ, the QP node in SCQ is not deleted.
|
||||||
|
which causes a segfault to occur when recreating
|
||||||
|
the QP. Here fix it.
|
||||||
|
|
||||||
|
coredump info:
|
||||||
|
0x0000ffff8fbc37d4 in list_add_before_
|
||||||
|
0x0000ffff8fbc381c in list_add_tail_
|
||||||
|
0x0000ffff8fbc9d9c in add_qp_to_cq_list
|
||||||
|
0x0000ffff8fbca008 in create_qp
|
||||||
|
0x0000ffff8fbca110 in hns_roce_u_create_qp
|
||||||
|
0x0000ffff8feae39c in __ibv_create_qp_1_1
|
||||||
|
0x0000000000401420 in test_ctrl_path
|
||||||
|
|
||||||
|
Fixes: 95e05809d2d2 ("[BigDipperV3R9,NeZha][ROCE] libhns: Support reporting wc as software mode")
|
||||||
|
Signed-off-by: Yuyu Li <liyuyu6@huawei.com>
|
||||||
|
Signed-off-by: Xinghai Cen <cenxinghai@h-partners.com>
|
||||||
|
---
|
||||||
|
providers/hns/hns_roce_u_hw_v2.c | 7 ++++---
|
||||||
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c
|
||||||
|
index e4232ea..c746e03 100644
|
||||||
|
--- a/providers/hns/hns_roce_u_hw_v2.c
|
||||||
|
+++ b/providers/hns/hns_roce_u_hw_v2.c
|
||||||
|
@@ -2006,9 +2006,10 @@ static int hns_roce_u_v2_destroy_qp(struct ibv_qp *ibqp)
|
||||||
|
list_del(&qp->rcq_node);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (ibqp->send_cq && ibqp->send_cq != ibqp->recv_cq) {
|
||||||
|
- __hns_roce_v2_cq_clean(to_hr_cq(ibqp->send_cq), ibqp->qp_num,
|
||||||
|
- NULL);
|
||||||
|
+ if (ibqp->send_cq) {
|
||||||
|
+ if (ibqp->send_cq != ibqp->recv_cq)
|
||||||
|
+ __hns_roce_v2_cq_clean(to_hr_cq(ibqp->send_cq), ibqp->qp_num,
|
||||||
|
+ NULL);
|
||||||
|
list_del(&qp->scq_node);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: rdma-core
|
Name: rdma-core
|
||||||
Version: 50.0
|
Version: 50.0
|
||||||
Release: 16
|
Release: 17
|
||||||
Summary: RDMA core userspace libraries and daemons
|
Summary: RDMA core userspace libraries and daemons
|
||||||
License: GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
|
License: GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
|
||||||
Url: https://github.com/linux-rdma/rdma-core
|
Url: https://github.com/linux-rdma/rdma-core
|
||||||
@ -46,6 +46,7 @@ patch37: 0037-libhns-Fix-out-of-order-issue-of-requester-when-sett.patch
|
|||||||
patch38: 0038-libhns-Fix-reference-to-uninitialized-cq-pointer.patch
|
patch38: 0038-libhns-Fix-reference-to-uninitialized-cq-pointer.patch
|
||||||
patch39: 0039-libhns-Fix-the-exception-branch-of-wr_start-is-not-l.patch
|
patch39: 0039-libhns-Fix-the-exception-branch-of-wr_start-is-not-l.patch
|
||||||
patch40: 0040-libhns-Fix-memory-leakage-when-DCA-is-enabled.patch
|
patch40: 0040-libhns-Fix-memory-leakage-when-DCA-is-enabled.patch
|
||||||
|
patch41: 0041-libhns-Fix-coredump-during-QP-destruction-when-send_.patch
|
||||||
|
|
||||||
BuildRequires: binutils cmake >= 2.8.11 gcc libudev-devel pkgconfig pkgconfig(libnl-3.0)
|
BuildRequires: binutils cmake >= 2.8.11 gcc libudev-devel pkgconfig pkgconfig(libnl-3.0)
|
||||||
BuildRequires: pkgconfig(libnl-route-3.0) systemd systemd-devel
|
BuildRequires: pkgconfig(libnl-route-3.0) systemd systemd-devel
|
||||||
@ -625,6 +626,12 @@ fi
|
|||||||
%doc %{_docdir}/%{name}-%{version}/70-persistent-ipoib.rules
|
%doc %{_docdir}/%{name}-%{version}/70-persistent-ipoib.rules
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 28 2024 Xinghai Cen <cenxinghai@h-partners.com> - 50.0-17
|
||||||
|
- Type: bugfix
|
||||||
|
- ID: NA
|
||||||
|
- SUG: NA
|
||||||
|
- DESC: Fix coredump during QP destruction when send_cq == recv_cq
|
||||||
|
|
||||||
* Mon Nov 25 2024 Xinghai Cen <cenxinghai@h-partners.com> - 50.0-16
|
* Mon Nov 25 2024 Xinghai Cen <cenxinghai@h-partners.com> - 50.0-16
|
||||||
- Type: bugfix
|
- Type: bugfix
|
||||||
- ID: NA
|
- ID: NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user