aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx5/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/mlx5/main.c')
-rw-r--r--drivers/infiniband/hw/mlx5/main.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index edd8b8741846..5acf346e048e 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -284,7 +284,7 @@ __be16 mlx5_get_roce_udp_sport(struct mlx5_ib_dev *dev, u8 port_num,
284 284
285static int mlx5_use_mad_ifc(struct mlx5_ib_dev *dev) 285static int mlx5_use_mad_ifc(struct mlx5_ib_dev *dev)
286{ 286{
287 return !dev->mdev->issi; 287 return !MLX5_CAP_GEN(dev->mdev, ib_virt);
288} 288}
289 289
290enum { 290enum {
@@ -563,6 +563,9 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
563 if (MLX5_CAP_GEN(mdev, cd)) 563 if (MLX5_CAP_GEN(mdev, cd))
564 props->device_cap_flags |= IB_DEVICE_CROSS_CHANNEL; 564 props->device_cap_flags |= IB_DEVICE_CROSS_CHANNEL;
565 565
566 if (!mlx5_core_is_pf(mdev))
567 props->device_cap_flags |= IB_DEVICE_VIRTUAL_FUNCTION;
568
566 return 0; 569 return 0;
567} 570}
568 571
@@ -700,6 +703,7 @@ static int mlx5_query_hca_port(struct ib_device *ibdev, u8 port,
700 props->qkey_viol_cntr = rep->qkey_violation_counter; 703 props->qkey_viol_cntr = rep->qkey_violation_counter;
701 props->subnet_timeout = rep->subnet_timeout; 704 props->subnet_timeout = rep->subnet_timeout;
702 props->init_type_reply = rep->init_type_reply; 705 props->init_type_reply = rep->init_type_reply;
706 props->grh_required = rep->grh_required;
703 707
704 err = mlx5_query_port_link_width_oper(mdev, &ib_link_width_oper, port); 708 err = mlx5_query_port_link_width_oper(mdev, &ib_link_width_oper, port);
705 if (err) 709 if (err)
@@ -2350,6 +2354,12 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
2350 dev->ib_dev.map_mr_sg = mlx5_ib_map_mr_sg; 2354 dev->ib_dev.map_mr_sg = mlx5_ib_map_mr_sg;
2351 dev->ib_dev.check_mr_status = mlx5_ib_check_mr_status; 2355 dev->ib_dev.check_mr_status = mlx5_ib_check_mr_status;
2352 dev->ib_dev.get_port_immutable = mlx5_port_immutable; 2356 dev->ib_dev.get_port_immutable = mlx5_port_immutable;
2357 if (mlx5_core_is_pf(mdev)) {
2358 dev->ib_dev.get_vf_config = mlx5_ib_get_vf_config;
2359 dev->ib_dev.set_vf_link_state = mlx5_ib_set_vf_link_state;
2360 dev->ib_dev.get_vf_stats = mlx5_ib_get_vf_stats;
2361 dev->ib_dev.set_vf_guid = mlx5_ib_set_vf_guid;
2362 }
2353 2363
2354 mlx5_ib_internal_fill_odp_caps(dev); 2364 mlx5_ib_internal_fill_odp_caps(dev);
2355 2365