net/mlx4: Change QP allocation scheme
[deliverable/linux.git] / drivers / net / ethernet / mellanox / mlx4 / resource_tracker.c
index 16f617b5749e562e7021b30bd285dcdb2671810b..4efbd1eca6116001e21d655c54479c71cb6f6584 100644 (file)
@@ -1543,16 +1543,21 @@ static int qp_alloc_res(struct mlx4_dev *dev, int slave, int op, int cmd,
        int align;
        int base;
        int qpn;
+       u8 flags;
 
        switch (op) {
        case RES_OP_RESERVE:
                count = get_param_l(&in_param) & 0xffffff;
+               /* Turn off all unsupported QP allocation flags that the
+                * slave tries to set.
+                */
+               flags = (get_param_l(&in_param) >> 24) & dev->caps.alloc_res_qp_mask;
                align = get_param_h(&in_param);
                err = mlx4_grant_resource(dev, slave, RES_QP, count, 0);
                if (err)
                        return err;
 
-               err = __mlx4_qp_reserve_range(dev, count, align, &base);
+               err = __mlx4_qp_reserve_range(dev, count, align, &base, flags);
                if (err) {
                        mlx4_release_resource(dev, slave, RES_QP, count, 0);
                        return err;
This page took 0.024814 seconds and 5 git commands to generate.