aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/hw/mlx4/main.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index 4054a1bfabb5..4a67ffc1ddfb 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -2823,14 +2823,19 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
2823 goto err_steer_qp_release; 2823 goto err_steer_qp_release;
2824 } 2824 }
2825 2825
2826 bitmap_zero(ibdev->ib_uc_qpns_bitmap, ibdev->steer_qpn_count); 2826 if (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_DMFS_IPOIB) {
2827 2827 bitmap_zero(ibdev->ib_uc_qpns_bitmap,
2828 err = mlx4_FLOW_STEERING_IB_UC_QP_RANGE( 2828 ibdev->steer_qpn_count);
2829 dev, ibdev->steer_qpn_base, 2829 err = mlx4_FLOW_STEERING_IB_UC_QP_RANGE(
2830 ibdev->steer_qpn_base + 2830 dev, ibdev->steer_qpn_base,
2831 ibdev->steer_qpn_count - 1); 2831 ibdev->steer_qpn_base +
2832 if (err) 2832 ibdev->steer_qpn_count - 1);
2833 goto err_steer_free_bitmap; 2833 if (err)
2834 goto err_steer_free_bitmap;
2835 } else {
2836 bitmap_fill(ibdev->ib_uc_qpns_bitmap,
2837 ibdev->steer_qpn_count);
2838 }
2834 } 2839 }
2835 2840
2836 for (j = 1; j <= ibdev->dev->caps.num_ports; j++) 2841 for (j = 1; j <= ibdev->dev->caps.num_ports; j++)