In the commit
64453f042519 ("net/mlx4_core: Disallow creation of RAW QPs
on a VF"), it disallows some QPs. But when enable_smi_admin is enabled,
it should be allowed to pass.
Orabug:
27452072
Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
(cherry picked from commit
a3fe544e915d367100f9f149109d7a7599b032ca)
Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
int local_qpn = be32_to_cpu(qpc->local_qpn) & 0xffffff;
int st = qp_get_st(qpc);
- if ((slave != mlx4_master_func_num(dev)) && (st == MLX4_QP_ST_MLX))
- return -EPERM;
+ if ((slave != mlx4_master_func_num(dev)) && (st == MLX4_QP_ST_MLX)) {
+ int port = (qpc->pri_path.sched_queue >> 6 & 1) + 1;
+
+ if (!mlx4_vf_smi_enabled(dev, slave, port))
+ return -EPERM;
+ }
err = qp_res_start_move_to(dev, slave, qpn, RES_QP_HW, &qp, 0);
if (err)