IB/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach
The MLX4_PROT_IB_IPV4 protocol should only be used with RoCEv2 and such.
Removing this wrong usage allows to run multicast applications over RoCE.
Fixes: d487ee7774
("IB/mlx4: Use IBoE (RoCE) IP based GIDs in the port GID table")
Reported-by: Carol Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
bfa76d4957
commit
e9a7faf11a
|
@ -1222,8 +1222,7 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
|
|||
struct mlx4_ib_qp *mqp = to_mqp(ibqp);
|
||||
u64 reg_id;
|
||||
struct mlx4_ib_steering *ib_steering = NULL;
|
||||
enum mlx4_protocol prot = (gid->raw[1] == 0x0e) ?
|
||||
MLX4_PROT_IB_IPV4 : MLX4_PROT_IB_IPV6;
|
||||
enum mlx4_protocol prot = MLX4_PROT_IB_IPV6;
|
||||
|
||||
if (mdev->dev->caps.steering_mode ==
|
||||
MLX4_STEERING_MODE_DEVICE_MANAGED) {
|
||||
|
@ -1236,8 +1235,10 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
|
|||
!!(mqp->flags &
|
||||
MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK),
|
||||
prot, ®_id);
|
||||
if (err)
|
||||
if (err) {
|
||||
pr_err("multicast attach op failed, err %d\n", err);
|
||||
goto err_malloc;
|
||||
}
|
||||
|
||||
err = add_gid_entry(ibqp, gid);
|
||||
if (err)
|
||||
|
@ -1285,8 +1286,7 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
|
|||
struct net_device *ndev;
|
||||
struct mlx4_ib_gid_entry *ge;
|
||||
u64 reg_id = 0;
|
||||
enum mlx4_protocol prot = (gid->raw[1] == 0x0e) ?
|
||||
MLX4_PROT_IB_IPV4 : MLX4_PROT_IB_IPV6;
|
||||
enum mlx4_protocol prot = MLX4_PROT_IB_IPV6;
|
||||
|
||||
if (mdev->dev->caps.steering_mode ==
|
||||
MLX4_STEERING_MODE_DEVICE_MANAGED) {
|
||||
|
|
Loading…
Reference in New Issue