This is a note to let you know that I've just added the patch titled IB/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach to the 3.14-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: ib-mlx4-fix-wrong-usage-of-ipv4-protocol-for-multicast-attach-detach.patch and it can be found in the queue-3.14 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From e9a7faf11af94957e5107b40af46c2e329541510 Mon Sep 17 00:00:00 2001 From: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> Date: Wed, 17 Dec 2014 16:17:34 +0200 Subject: IB/mlx4: Fix wrong usage of IPv4 protocol for multicast attach/detach From: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> commit e9a7faf11af94957e5107b40af46c2e329541510 upstream. 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: d487ee77740c ("IB/mlx4: Use IBoE (RoCE) IP based GIDs in the port GID table") Reported-by: Carol Soto <clsoto@xxxxxxxxxxxxxxxxxx> Signed-off-by: Or Gerlitz <ogerlitz@xxxxxxxxxxxx> Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/infiniband/hw/mlx4/main.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1161,8 +1161,7 @@ static int mlx4_ib_mcg_attach(struct ib_ 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) { @@ -1175,8 +1174,10 @@ static int mlx4_ib_mcg_attach(struct ib_ !!(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) @@ -1224,8 +1225,7 @@ static int mlx4_ib_mcg_detach(struct ib_ 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) { Patches currently in stable-queue which might be from ogerlitz@xxxxxxxxxxxx are queue-3.14/ib-core-when-marshaling-ucma-path-from-user-space-clear-unused-fields.patch queue-3.14/ib-core-fix-deadlock-on-uverbs-modify_qp-error-flow.patch queue-3.14/ib-mlx4-fix-wrong-usage-of-ipv4-protocol-for-multicast-attach-detach.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html