Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b621851 authored by Majd Dibbiny's avatar Majd Dibbiny Committed by Doug Ledford
Browse files

IB/mlx5: Fix RoCE Address Path fields



When working over a RoCE network, the UDP source port should be set only
for statically connected QPs (RC, UC and XRC).

Fixes: 2811ba51 ("IB/mlx5: Add RoCE fields to Address Vector")
Signed-off-by: default avatarMajd Dibbiny <majd@mellanox.com>
Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 31fde034
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2339,6 +2339,10 @@ static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
		if (err)
			return err;
		memcpy(path->rmac, ah->roce.dmac, sizeof(ah->roce.dmac));
		if (qp->ibqp.qp_type == IB_QPT_RC ||
		    qp->ibqp.qp_type == IB_QPT_UC ||
		    qp->ibqp.qp_type == IB_QPT_XRC_INI ||
		    qp->ibqp.qp_type == IB_QPT_XRC_TGT)
			path->udp_sport = mlx5_get_roce_udp_sport(dev, port,
								  grh->sgid_index);
		path->dci_cfi_prio_sl = (sl & 0x7) << 4;