]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RDMA/rdmavt: Correct multi-port QP iteration
authorDean Luick <dean.luick@cornelisnetworks.com>
Mon, 9 Mar 2026 20:44:54 +0000 (16:44 -0400)
committerLeon Romanovsky <leon@kernel.org>
Wed, 11 Mar 2026 19:17:28 +0000 (15:17 -0400)
When finding special QPs, the iterator makes an incorrect port
index calculation.  Fix the calculation.

Signed-off-by: Dean Luick <dean.luick@cornelisnetworks.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com>
Link: https://patch.msgid.link/177308909468.1279894.5073405674644246445.stgit@awdrv-04.cornelisnetworks.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/sw/rdmavt/qp.c

index c1199ea5d41fda9073bc7381bc54c5d33e0887dc..b519d9d0e42913601bf3ec7664259ed10aac31ea 100644 (file)
@@ -2707,7 +2707,7 @@ int rvt_qp_iter_next(struct rvt_qp_iter *iter)
                                struct rvt_ibport *rvp;
                                int pidx;
 
-                               pidx = n % rdi->ibdev.phys_port_cnt;
+                               pidx = n / 2; /* QP0 and QP1 */
                                rvp = rdi->ports[pidx];
                                qp = rcu_dereference(rvp->qp[n & 1]);
                        } else {