net/mlx4: Change QP allocation scheme
[deliverable/linux.git] / drivers / net / ethernet / mellanox / mlx4 / main.c
index 3044f9e623cb0336be273d57fbb6f12ca97e4578..6a9a941ddf587c9fe677a085a0fe1b29126bae57 100644 (file)
@@ -466,8 +466,13 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
            mlx4_is_master(dev))
                dev->caps.function_caps |= MLX4_FUNC_CAP_64B_EQE_CQE;
 
-       if (!mlx4_is_slave(dev))
+       if (!mlx4_is_slave(dev)) {
                mlx4_enable_cqe_eqe_stride(dev);
+               dev->caps.alloc_res_qp_mask =
+                       (dev->caps.bf_reg_size ? MLX4_RESERVE_ETH_BF_QP : 0);
+       } else {
+               dev->caps.alloc_res_qp_mask = 0;
+       }
 
        return 0;
 }
@@ -817,6 +822,10 @@ static int mlx4_slave_cap(struct mlx4_dev *dev)
 
        slave_adjust_steering_mode(dev, &dev_cap, &hca_param);
 
+       if (func_cap.extra_flags & MLX4_QUERY_FUNC_FLAGS_BF_RES_QP &&
+           dev->caps.bf_reg_size)
+               dev->caps.alloc_res_qp_mask |= MLX4_RESERVE_ETH_BF_QP;
+
        return 0;
 
 err_mem:
This page took 0.023994 seconds and 5 git commands to generate.