Lines Matching defs:ibdev
145 static union ib_gid gid_from_req_msg(struct ib_device *ibdev, struct ib_mad *mad)
154 id_map_find_by_sl_id(struct ib_device *ibdev, u32 slave_id, u32 sl_cm_id)
156 struct rb_root *sl_id_map = &to_mdev(ibdev)->sriov.sl_id_map;
199 static void sl_id_map_add(struct ib_device *ibdev, struct id_map_entry *new)
201 struct rb_root *sl_id_map = &to_mdev(ibdev)->sriov.sl_id_map;
207 ent = id_map_find_by_sl_id(ibdev, slave_id, sl_cm_id);
232 id_map_alloc(struct ib_device *ibdev, int slave_id, u32 sl_cm_id)
236 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov;
245 ent->dev = to_mdev(ibdev);
252 sl_id_map_add(ibdev, ent);
260 mlx4_ib_warn(ibdev, "Allocation failed (err:0x%x)\n", ret);
265 id_map_get(struct ib_device *ibdev, int *pv_cm_id, int slave_id, int sl_cm_id)
268 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov;
272 ent = id_map_find_by_sl_id(ibdev, slave_id, sl_cm_id);
282 static void schedule_delayed(struct ib_device *ibdev, struct id_map_entry *id)
284 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov;
302 int mlx4_ib_multiplex_cm_handler(struct ib_device *ibdev, int port, int slave_id,
315 id = id_map_get(ibdev, &pv_cm_id, slave_id, sl_cm_id);
318 id = id_map_alloc(ibdev, slave_id, sl_cm_id);
320 mlx4_ib_warn(ibdev, "%s: id{slave: %d, sl_cm_id: 0x%x} Failed to id_map_alloc\n",
329 id = id_map_get(ibdev, &pv_cm_id, slave_id, sl_cm_id);
342 schedule_delayed(ibdev, id);
426 int mlx4_ib_demux_cm_handler(struct ib_device *ibdev, int port, int *slave,
429 struct mlx4_ib_sriov *sriov = &to_mdev(ibdev)->sriov;
442 gid = gid_from_req_msg(ibdev, mad);
443 *slave = mlx4_ib_find_real_gid(ibdev, port, gid.global.interface_id);
445 mlx4_ib_warn(ibdev, "failed matching slave_id by gid (0x%llx)\n",
460 id = id_map_get(ibdev, (int *)&pv_cm_id, -1, -1);
480 schedule_delayed(ibdev, id);