Lines Matching refs:ibdev

103 	struct mlx5_ib_dev *ibdev = container_of(this, struct mlx5_ib_dev,  in mlx5_netdev_event()  local
109 write_lock(&ibdev->roce.netdev_lock); in mlx5_netdev_event()
111 if (mlx5_netdev_match(ndev, ibdev->mdev, "mce")) in mlx5_netdev_event()
112 ibdev->roce.netdev = (event == NETDEV_UNREGISTER) ? in mlx5_netdev_event()
114 write_unlock(&ibdev->roce.netdev_lock); in mlx5_netdev_event()
121 if ((upper == ndev || (!upper && ndev == ibdev->roce.netdev)) in mlx5_netdev_event()
122 && ibdev->ib_active) { in mlx5_netdev_event()
125 ibev.device = &ibdev->ib_dev; in mlx5_netdev_event()
144 struct mlx5_ib_dev *ibdev = to_mdev(device); in mlx5_ib_get_netdev() local
149 read_lock(&ibdev->roce.netdev_lock); in mlx5_ib_get_netdev()
150 ndev = ibdev->roce.netdev; in mlx5_ib_get_netdev()
153 read_unlock(&ibdev->roce.netdev_lock); in mlx5_ib_get_netdev()
487 static int mlx5_get_vport_access_method(struct ib_device *ibdev) in mlx5_get_vport_access_method() argument
489 if (mlx5_use_mad_ifc(to_mdev(ibdev))) in mlx5_get_vport_access_method()
492 if (mlx5_ib_port_link_layer(ibdev, 1) == in mlx5_get_vport_access_method()
521 static int mlx5_query_system_image_guid(struct ib_device *ibdev, in mlx5_query_system_image_guid() argument
524 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_query_system_image_guid()
529 switch (mlx5_get_vport_access_method(ibdev)) { in mlx5_query_system_image_guid()
531 return mlx5_query_mad_ifc_system_image_guid(ibdev, in mlx5_query_system_image_guid()
553 static int mlx5_query_max_pkeys(struct ib_device *ibdev, in mlx5_query_max_pkeys() argument
556 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_query_max_pkeys()
559 switch (mlx5_get_vport_access_method(ibdev)) { in mlx5_query_max_pkeys()
561 return mlx5_query_mad_ifc_max_pkeys(ibdev, max_pkeys); in mlx5_query_max_pkeys()
574 static int mlx5_query_vendor_id(struct ib_device *ibdev, in mlx5_query_vendor_id() argument
577 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_query_vendor_id()
579 switch (mlx5_get_vport_access_method(ibdev)) { in mlx5_query_vendor_id()
581 return mlx5_query_mad_ifc_vendor_id(ibdev, vendor_id); in mlx5_query_vendor_id()
638 static int mlx5_ib_query_device(struct ib_device *ibdev, in mlx5_ib_query_device() argument
642 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_query_device()
663 err = mlx5_query_system_image_guid(ibdev, in mlx5_ib_query_device()
668 err = mlx5_query_max_pkeys(ibdev, &props->max_pkeys); in mlx5_ib_query_device()
672 err = mlx5_query_vendor_id(ibdev, &props->vendor_id); in mlx5_ib_query_device()
810 if (mlx5_ib_port_link_layer(ibdev, 1) == in mlx5_ib_query_device()
839 static int translate_active_width(struct ib_device *ibdev, u8 active_width, in translate_active_width() argument
842 struct mlx5_ib_dev *dev = to_mdev(ibdev); in translate_active_width()
884 static int translate_max_vl_num(struct ib_device *ibdev, u8 vl_hw_cap, in translate_max_vl_num() argument
911 static int mlx5_query_hca_port(struct ib_device *ibdev, u8 port, in mlx5_query_hca_port() argument
914 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_query_hca_port()
967 err = translate_active_width(ibdev, ptys->ib_link_width_oper, in mlx5_query_hca_port()
988 err = translate_max_vl_num(ibdev, pvlc.vl_hw_cap, in mlx5_query_hca_port()
997 int mlx5_ib_query_port(struct ib_device *ibdev, u8 port, in mlx5_ib_query_port() argument
1000 switch (mlx5_get_vport_access_method(ibdev)) { in mlx5_ib_query_port()
1002 return mlx5_query_mad_ifc_port(ibdev, port, props); in mlx5_ib_query_port()
1005 return mlx5_query_hca_port(ibdev, port, props); in mlx5_ib_query_port()
1008 return mlx5_query_port_roce(ibdev, port, props); in mlx5_ib_query_port()
1015 static int mlx5_ib_query_gid(struct ib_device *ibdev, u8 port, int index, in mlx5_ib_query_gid() argument
1018 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_query_gid()
1021 switch (mlx5_get_vport_access_method(ibdev)) { in mlx5_ib_query_gid()
1023 return mlx5_query_mad_ifc_gids(ibdev, port, index, gid); in mlx5_ib_query_gid()
1034 static int mlx5_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index, in mlx5_ib_query_pkey() argument
1037 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_query_pkey()
1040 switch (mlx5_get_vport_access_method(ibdev)) { in mlx5_ib_query_pkey()
1042 return mlx5_query_mad_ifc_pkey(ibdev, port, index, pkey); in mlx5_ib_query_pkey()
1053 static int mlx5_ib_modify_device(struct ib_device *ibdev, int mask, in mlx5_ib_modify_device() argument
1056 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_modify_device()
1077 memcpy(ibdev->node_desc, props->node_desc, IB_DEVICE_NODE_DESC_MAX); in mlx5_ib_modify_device()
1082 static int mlx5_ib_modify_port(struct ib_device *ibdev, u8 port, int mask, in mlx5_ib_modify_port() argument
1085 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_modify_port()
1095 if (mlx5_ib_port_link_layer(ibdev, port) == IB_LINK_LAYER_ETHERNET) in mlx5_ib_modify_port()
1100 err = mlx5_ib_query_port(ibdev, port, &attr); in mlx5_ib_modify_port()
1263 struct ib_device *ibdev = uctx->device; in mlx5_ib_alloc_ucontext() local
1264 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_alloc_ucontext()
1742 struct ib_device *ibdev = ibpd->device; in mlx5_ib_alloc_pd() local
1749 err = mlx5_core_alloc_pd(to_mdev(ibdev)->mdev, &pd->pdn, uid); in mlx5_ib_alloc_pd()
1757 mlx5_core_dealloc_pd(to_mdev(ibdev)->mdev, pd->pdn, uid); in mlx5_ib_alloc_pd()
2598 static void mlx5_ib_handle_internal_error(struct mlx5_ib_dev *ibdev) in mlx5_ib_handle_internal_error() argument
2611 spin_lock_irqsave(&ibdev->reset_flow_resource_lock, flags); in mlx5_ib_handle_internal_error()
2612 list_for_each_entry(mqp, &ibdev->qp_list, qps_list) { in mlx5_ib_handle_internal_error()
2654 spin_unlock_irqrestore(&ibdev->reset_flow_resource_lock, flags); in mlx5_ib_handle_internal_error()
2660 struct mlx5_ib_dev *ibdev = (struct mlx5_ib_dev *)context; in mlx5_ib_event() local
2668 mlx5_ib_handle_internal_error(ibdev); in mlx5_ib_event()
2678 if (mlx5_ib_port_link_layer(&ibdev->ib_dev, port) == in mlx5_ib_event()
2693 schedule_work(&ibdev->devr.ports[port - 1].pkey_change_work); in mlx5_ib_event()
2709 ibev.device = &ibdev->ib_dev; in mlx5_ib_event()
2712 if (!rdma_is_port_valid(&ibdev->ib_dev, port)) { in mlx5_ib_event()
2713 mlx5_ib_warn(ibdev, "warning: event(%d) on port %d\n", event, port); in mlx5_ib_event()
2717 if (ibdev->ib_active) in mlx5_ib_event()
2721 ibdev->ib_active = false; in mlx5_ib_event()
2909 struct ib_device *ibdev; in create_dev_resources() local
2915 ibdev = &dev->ib_dev; in create_dev_resources()
2919 devr->p0 = rdma_zalloc_drv_obj(ibdev, ib_pd); in create_dev_resources()
2923 devr->p0->device = ibdev; in create_dev_resources()
2931 devr->c0 = rdma_zalloc_drv_obj(ibdev, ib_cq); in create_dev_resources()
2973 devr->s0 = rdma_zalloc_drv_obj(ibdev, ib_srq); in create_dev_resources()
2997 devr->s1 = rdma_zalloc_drv_obj(ibdev, ib_srq); in create_dev_resources()
3064 static u32 get_core_cap_flags(struct ib_device *ibdev) in get_core_cap_flags() argument
3066 struct mlx5_ib_dev *dev = to_mdev(ibdev); in get_core_cap_flags()
3067 enum rdma_link_layer ll = mlx5_ib_port_link_layer(ibdev, 1); in get_core_cap_flags()
3090 static int mlx5_port_immutable(struct ib_device *ibdev, u8 port_num, in mlx5_port_immutable() argument
3094 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_port_immutable()
3095 enum rdma_link_layer ll = mlx5_ib_port_link_layer(ibdev, port_num); in mlx5_port_immutable()
3098 err = mlx5_ib_query_port(ibdev, port_num, &attr); in mlx5_port_immutable()
3104 immutable->core_cap_flags = get_core_cap_flags(ibdev); in mlx5_port_immutable()
3111 static void get_dev_fw_str(struct ib_device *ibdev, char *str, in get_dev_fw_str() argument
3115 container_of(ibdev, struct mlx5_ib_dev, ib_dev); in get_dev_fw_str()
3273 static struct rdma_hw_stats *mlx5_ib_alloc_hw_stats(struct ib_device *ibdev, in mlx5_ib_alloc_hw_stats() argument
3286 static int mlx5_ib_get_hw_stats(struct ib_device *ibdev, in mlx5_ib_get_hw_stats() argument
3290 struct mlx5_ib_dev *dev = to_mdev(ibdev); in mlx5_ib_get_hw_stats()