rdma-core:stable-v37

Last commit made on 2024-04-02
Get this branch:
git clone -b stable-v37 https://git.launchpad.net/rdma-core

Branch merges

Branch information

Name:
stable-v37
Repository:
lp:rdma-core

Recent commits

4b243a5... by Itamar Gozlan <email address hidden>

mlx5: DR, Using sq ts format when RoCE is disabled

[ Upstream commit cebd491f520fbed90b19b01aad280bc43338ebaa ]

When creating a QP in SW steering, one of the attributes is TS format
(timestamp). In some devices, we have a limitation that all QPs should
have the same ts_format.

The qp_ts_format cap resides under the RoCE caps table, and the cap is
not queried when RoCE is disabled.
Consider the case when the system is configured to run with REAL_TIME_TS
format (0x2), some QPs are created, and we disable RoCE.
When trying to construct a new QP, we can't use the qp_ts_format, that
is queried from the RoCE caps table.
That leads to passing 0x0 (FREE_RUNNING_TS) as the value of the
qp_ts_format, which is different than the ts_format of the previous QPs
REAL_TIME_TS format (0x2) and the creation will fail.

To resolve this, we will read the sq_ts_format, which also reflect the
supported ts format for the QP when RoCE is disabled, and override it
with qp_ts_format from the RoCE caps table if RoCE is enabled.

Fixes: ed504ab47384 ("mlx5: DR, Set QP timestamp mode to default")
Signed-off-by: Itamar Gozlan <email address hidden>
Signed-off-by: Alex Vesker <email address hidden>
Signed-off-by: Yishai Hadas <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

8665340... by Honggang LI <honggangli@163.com>

librdmacm: adjust ECE function name in man page

[ Upstream commit 1a302c7df2ad7851b8d5886c773f93a9370edc88 ]

Replace `ibv_get_ece()` with `ibv_query_ece()`.

Fixes: 97f8668eb53e ("librdmacm: Document ECE API")
Signed-off-by: Honggang LI <honggangli@163.com>
Signed-off-by: Nicolas Morey <email address hidden>

28c278c... by Kamal Heib <email address hidden>

providers/qedr: Fix qelr_alloc_context error flow

[ Upstream commit 7ffc47dd1ebe4c18c9a93bafbdbb408a5c2964d9 ]

Fix the error flow of qelr_alloc_context() by making sure to free the
allocated resources.

Fixes: cae4a99ae679 ("libqedr: add support for XRC-SRQ's.")
Signed-off-by: Kamal Heib <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

6c28f34... by Nicolas Morey <email address hidden>

Bump to version 37.9

Signed-off-by: Nicolas Morey <email address hidden>

12a45a1... by Jiawei Wang <email address hidden>

mlx5: DR, Fix the default miss vport

[ Upstream commit 68b272d7fb2fca010a368265d0423b7f47d0608f ]

For FDB sample flow, the termination table on sample destination path
must go to the eswitch manager vport. On BlueField, the eswitch manager
vport is 0xfffe rather than 0.

Change to set the correct destination vport depends on the current
eswitch function is ECPF or PF.

Fixes: 161d5ad37556 ("mlx5: DR, Add support for destination array action")
Signed-off-by: Jiawei Wang <email address hidden>
Reviewed-by: Hamdan Igbaria <email address hidden>
Signed-off-by: Yishai Hadas <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

8f59410... by Yevgeny Kliteynik <email address hidden>

mlx5: DR, Use the right GVMI number for drop action

[ Upstream commit c16e771d900118180f8e3cdf22cc517ab72db75d ]

When FW provides ICM addresses for drop RX/TX, the provided capability
is 64 bits that contain its GVMI as well as the ICM address itself. In
case of TX DROP this GVMI is different from the GVMI that the domain is
operating on.

This patch fixes the action to use this GVMI ID, as provided by FW.

Fixes: 828351a7da47 ("mlx5: Expose steering action functionality")
Signed-off-by: Yevgeny Kliteynik <email address hidden>
Reviewed-by: Erez Shitrit <email address hidden>
Signed-off-by: Yishai Hadas <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

5aceb0c... by Yangyang Li <email address hidden>

libhns: Bugfix for wrong timing of modifying ibv_qp state to err

[ Upstream commit 886cf76ed44c58bacc9ac3451e4383bf8625385d ]

Currently the QPC state in HW is modified inside the critical section
of spinlock but the ibv_qp state is modified outside. There will be
a short period when QPC state has been modified to err with ibv_qp
state still remaining RTS. WQEs during this period will still be
post-send by RTS-state ibv_qp but then dropped by err-state HW with
no flush CQEs generated.

To fix this problem, the QPC state in HW and ibv_qp state should be
both modified to err inside the critical section of spinlock.

Fixes: f1a80cc3dfe2 ("libhns: Bugfix for flush cqe in case multi-process")
Signed-off-by: Yangyang Li <email address hidden>
Signed-off-by: Junxian Huang <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

134649d... by Chengchang Tang <email address hidden>

libhns: Fix possible overflow in cq clean

[ Upstream commit 886b17cd973bb2abeed6a288f3df11f4edc9b303 ]

The ci/pi of hns roce cq allows data to be flipped. but in
__hns_roce_v2_cq_clean(), this flip may lead to an wrong number
of loops.

This patch fixes it by extending the data type to avoid data
flipping.

Fixes: 6fe30a1a705f ("libhns: Introduce QP operations referred to hip08 RoCE device")
Signed-off-by: Chengchang Tang <email address hidden>
Signed-off-by: Junxian Huang <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

56aa199... by Chengchang Tang <email address hidden>

libhns: Fix uninitialized qp attr when flush cqe

[ Upstream commit 23c210471029f58ee486525790a9c3906ae11601 ]

When flushing cqe, the state of qp needs to be modified. The incoming qp
attr is not initialized, which may lead to undefined behavior.

Fixes: e1726e934574 ("libhns: Support flush cqe for hip08 in user space")
Signed-off-by: Chengchang Tang <email address hidden>
Signed-off-by: Junxian Huang <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>

6e94c21... by Anton Kuchin <email address hidden>

ibnetdisc: Fix leak in add_to_portlid_hash

[ Upstream commit 5814d7842b85451cc29186844c022785835c3565 ]

When the duplicate port is added to the map cl_qmap_insert() returns pointer
to existing value and the new entry is left unused that results in leak:

==1606814== 2,624 bytes in 41 blocks are definitely lost in loss record 1 of 1
==1606814== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==1606814== by 0x5174B59: add_to_portlid_hash (ibnetdisc.c:704)
==1606814== by 0x517638E: recv_port_info (ibnetdisc.c:379)
==1606814== by 0x51789B0: process_one_recv (query_smp.c:200)
==1606814== by 0x5178EF7: process_mads (query_smp.c:276)
==1606814== by 0x51755E7: ibnd_discover_fabric (ibnetdisc.c:817)
==1606814== by 0x109229: main (in /vagrant/go/gpu/ib-ict-manager/a.out)

The solution is to free new item if it was not added to the map.

Fixes: 16168163317b ("ibdiags: Use cl_qmap instead of glib hashtable")

Signed-off-by: Anton Kuchin <email address hidden>
Signed-off-by: Nicolas Morey <email address hidden>