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>
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>
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
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.
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>
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>