Lines Matching refs:xrcd

421 	struct ib_xrcd *xrcd;  member
427 struct ib_xrcd *xrcd) in xrcd_table_insert() argument
437 entry->xrcd = xrcd; in xrcd_table_insert()
488 return entry->xrcd; in find_xrcd()
512 struct ib_xrcd *xrcd = NULL; in ib_uverbs_open_xrcd() local
541 xrcd = find_xrcd(file->device, inode); in ib_uverbs_open_xrcd()
542 if (!xrcd && !(cmd.oflags & O_CREAT)) { in ib_uverbs_open_xrcd()
548 if (xrcd && cmd.oflags & O_EXCL) { in ib_uverbs_open_xrcd()
561 if (!xrcd) { in ib_uverbs_open_xrcd()
562 xrcd = ib_dev->alloc_xrcd(ib_dev, obj->uobject.context, &udata); in ib_uverbs_open_xrcd()
563 if (IS_ERR(xrcd)) { in ib_uverbs_open_xrcd()
564 ret = PTR_ERR(xrcd); in ib_uverbs_open_xrcd()
568 xrcd->inode = inode; in ib_uverbs_open_xrcd()
569 xrcd->device = ib_dev; in ib_uverbs_open_xrcd()
570 atomic_set(&xrcd->usecnt, 0); in ib_uverbs_open_xrcd()
571 mutex_init(&xrcd->tgt_qp_mutex); in ib_uverbs_open_xrcd()
572 INIT_LIST_HEAD(&xrcd->tgt_qp_list); in ib_uverbs_open_xrcd()
577 obj->uobject.object = xrcd; in ib_uverbs_open_xrcd()
584 ret = xrcd_table_insert(file->device, inode, xrcd); in ib_uverbs_open_xrcd()
588 atomic_inc(&xrcd->usecnt); in ib_uverbs_open_xrcd()
607 atomic_dec(&xrcd->usecnt); in ib_uverbs_open_xrcd()
611 ib_dealloc_xrcd(xrcd); in ib_uverbs_open_xrcd()
639 struct ib_xrcd *xrcd, in ib_uverbs_dealloc_xrcd() argument
646 inode = xrcd->inode; in ib_uverbs_dealloc_xrcd()
647 if (inode && !atomic_dec_and_test(&xrcd->usecnt)) in ib_uverbs_dealloc_xrcd()
650 ret = ib_dealloc_xrcd(xrcd); in ib_uverbs_dealloc_xrcd()
653 atomic_inc(&xrcd->usecnt); in ib_uverbs_dealloc_xrcd()
1352 struct ib_xrcd *xrcd = NULL; in create_qp() local
1414 xrcd = (struct ib_xrcd *)xrcd_uobj->object; in create_qp()
1415 if (!xrcd) { in create_qp()
1419 device = xrcd->device; in create_qp()
1467 attr.xrcd = xrcd; in create_qp()
1575 if (xrcd) { in create_qp()
1728 struct ib_xrcd *xrcd; in ib_uverbs_open_qp() local
1757 xrcd = (struct ib_xrcd *)xrcd_uobj->object; in ib_uverbs_open_qp()
1758 if (!xrcd) { in ib_uverbs_open_qp()
1772 qp = ib_open_qp(xrcd, &attr); in ib_uverbs_open_qp()
3714 attr.ext.xrc.xrcd = (struct ib_xrcd *)xrcd_uobj->object; in __uverbs_create_xsrq()
3715 if (!attr.ext.xrc.xrcd) { in __uverbs_create_xsrq()
3768 srq->ext.xrc.xrcd = attr.ext.xrc.xrcd; in __uverbs_create_xsrq()
3769 atomic_inc(&attr.ext.xrc.xrcd->usecnt); in __uverbs_create_xsrq()