diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx4/main.c')
-rw-r--r-- | drivers/infiniband/hw/mlx4/main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index 4d61e32866c6..bcf50648fa18 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c | |||
@@ -90,7 +90,8 @@ static int mlx4_ib_query_device(struct ib_device *ibdev, | |||
90 | props->device_cap_flags = IB_DEVICE_CHANGE_PHY_PORT | | 90 | props->device_cap_flags = IB_DEVICE_CHANGE_PHY_PORT | |
91 | IB_DEVICE_PORT_ACTIVE_EVENT | | 91 | IB_DEVICE_PORT_ACTIVE_EVENT | |
92 | IB_DEVICE_SYS_IMAGE_GUID | | 92 | IB_DEVICE_SYS_IMAGE_GUID | |
93 | IB_DEVICE_RC_RNR_NAK_GEN; | 93 | IB_DEVICE_RC_RNR_NAK_GEN | |
94 | IB_DEVICE_BLOCK_MULTICAST_LOOPBACK; | ||
94 | if (dev->dev->caps.flags & MLX4_DEV_CAP_FLAG_BAD_PKEY_CNTR) | 95 | if (dev->dev->caps.flags & MLX4_DEV_CAP_FLAG_BAD_PKEY_CNTR) |
95 | props->device_cap_flags |= IB_DEVICE_BAD_PKEY_CNTR; | 96 | props->device_cap_flags |= IB_DEVICE_BAD_PKEY_CNTR; |
96 | if (dev->dev->caps.flags & MLX4_DEV_CAP_FLAG_BAD_QKEY_CNTR) | 97 | if (dev->dev->caps.flags & MLX4_DEV_CAP_FLAG_BAD_QKEY_CNTR) |
@@ -437,7 +438,9 @@ static int mlx4_ib_dealloc_pd(struct ib_pd *pd) | |||
437 | static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) | 438 | static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) |
438 | { | 439 | { |
439 | return mlx4_multicast_attach(to_mdev(ibqp->device)->dev, | 440 | return mlx4_multicast_attach(to_mdev(ibqp->device)->dev, |
440 | &to_mqp(ibqp)->mqp, gid->raw); | 441 | &to_mqp(ibqp)->mqp, gid->raw, |
442 | !!(to_mqp(ibqp)->flags & | ||
443 | MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); | ||
441 | } | 444 | } |
442 | 445 | ||
443 | static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) | 446 | static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) |