Lines Matching defs:obj

206 static u16 get_dec_obj_type(struct devx_obj *obj, u16 event_num)
210 opcode = (obj->obj_id >> 32) & 0xffff;
217 return (obj->obj_id >> 48);
1309 static int devx_handle_mkey_indirect(struct devx_obj *obj,
1313 struct mlx5_ib_mkey *mkey = &obj->mkey;
1329 struct devx_obj *obj,
1349 obj->flags |= DEVX_OBJ_FLAGS_INDIRECT_MKEY;
1392 struct devx_obj *obj = uobject->object;
1398 if (obj->flags & DEVX_OBJ_FLAGS_INDIRECT_MKEY &&
1399 xa_erase(&obj->ib_dev->odp_mkeys,
1400 mlx5_base_mkey(obj->mkey.key)))
1406 mlx5r_deref_wait_odp_mkey(&obj->mkey);
1408 if (obj->flags & DEVX_OBJ_FLAGS_DCT)
1409 ret = mlx5_core_destroy_dct(obj->ib_dev, &obj->core_dct);
1410 else if (obj->flags & DEVX_OBJ_FLAGS_CQ)
1411 ret = mlx5_core_destroy_cq(obj->ib_dev->mdev, &obj->core_cq);
1413 ret = mlx5_cmd_exec(obj->ib_dev->mdev, obj->dinbox,
1414 obj->dinlen, out, sizeof(out));
1421 list_for_each_entry_safe(sub_entry, tmp, &obj->event_sub, obj_list)
1425 kfree(obj);
1431 struct devx_obj *obj = container_of(mcq, struct devx_obj, core_cq);
1437 table = &obj->ib_dev->devx_event_table;
1476 struct devx_obj *obj;
1497 obj = kzalloc(sizeof(struct devx_obj), GFP_KERNEL);
1498 if (!obj)
1503 err = devx_handle_mkey_create(dev, obj, cmd_in, cmd_in_len);
1511 obj->flags |= DEVX_OBJ_FLAGS_DCT;
1512 err = mlx5_core_create_dct(dev, &obj->core_dct, cmd_in,
1516 obj->flags |= DEVX_OBJ_FLAGS_CQ;
1517 obj->core_cq.comp = devx_cq_comp;
1518 err = mlx5_create_cq(dev->mdev, &obj->core_cq,
1544 obj->flow_counter_bulk_size = bulk;
1547 uobj->object = obj;
1548 INIT_LIST_HEAD(&obj->event_sub);
1549 obj->ib_dev = dev;
1550 devx_obj_build_destroy_cmd(cmd_in, cmd_out, obj->dinbox, &obj->dinlen,
1552 WARN_ON(obj->dinlen > MLX5_MAX_DESTROY_INBOX_SIZE_DW * sizeof(u32));
1560 obj->obj_id = get_enc_obj_id(opcode | obj_type << 16, obj_id);
1562 if (obj->flags & DEVX_OBJ_FLAGS_INDIRECT_MKEY) {
1563 err = devx_handle_mkey_indirect(obj, dev, cmd_in, cmd_out);
1570 if (obj->flags & DEVX_OBJ_FLAGS_DCT)
1571 mlx5_core_destroy_dct(obj->ib_dev, &obj->core_dct);
1572 else if (obj->flags & DEVX_OBJ_FLAGS_CQ)
1573 mlx5_core_destroy_cq(obj->ib_dev->mdev, &obj->core_cq);
1575 mlx5_cmd_exec(obj->ib_dev->mdev, obj->dinbox, obj->dinlen, out,
1578 kfree(obj);
1932 struct devx_obj *obj)
1937 if (obj) {
1952 struct devx_obj *obj)
1967 obj);
1977 if (obj) {
2008 struct devx_obj *obj = NULL;
2027 obj = (struct devx_obj *)devx_uobj->object;
2028 if (obj)
2029 obj_id = get_dec_obj_id(obj->obj_id);
2074 if (!is_valid_events(dev->mdev, num_events, event_type_num_list, obj))
2086 if (obj)
2087 obj_type = get_dec_obj_type(obj,
2093 obj,
2144 if (!obj) {
2155 &obj->event_sub);
2167 obj,
2182 struct devx_umem *obj, u32 access_flags)
2209 obj->umem = &umem_dmabuf->umem;
2211 obj->umem = ib_umem_get(&dev->ib_dev, addr, size, access_flags);
2212 if (IS_ERR(obj->umem))
2213 return PTR_ERR(obj->umem);
2252 struct devx_umem *obj,
2281 page_size = devx_umem_find_best_pgsize(obj->umem, pgsz_bitmap);
2287 ib_umem_num_dma_blocks(obj->umem, page_size));
2297 ib_umem_num_dma_blocks(obj->umem, page_size));
2301 ib_umem_dma_offset(obj->umem, page_size));
2303 if (mlx5_umem_needs_ats(dev, obj->umem, access))
2306 mlx5_ib_populate_pas(obj->umem, page_size, mtt,
2307 (obj->umem->writable ? MLX5_IB_MTT_WRITE : 0) |
2316 struct devx_umem *obj;
2338 obj = kzalloc(sizeof(struct devx_umem), GFP_KERNEL);
2339 if (!obj)
2342 err = devx_umem_get(dev, &c->ibucontext, attrs, obj, access_flags);
2346 err = devx_umem_reg_cmd_alloc(dev, attrs, obj, &cmd, access_flags);
2356 obj->mdev = dev->mdev;
2357 uobj->object = obj;
2358 devx_obj_build_destroy_cmd(cmd.in, cmd.out, obj->dinbox, &obj->dinlen, &obj_id);
2366 ib_umem_release(obj->umem);
2368 kfree(obj);
2376 struct devx_umem *obj = uobject->object;
2380 err = mlx5_cmd_exec(obj->mdev, obj->dinbox, obj->dinlen, out, sizeof(out));
2384 ib_umem_release(obj->umem);
2385 kfree(obj);