Lines Matching refs:devr

4115 	mutex_lock(&ports->devr->mutex);  in pkey_change_handler()
4117 mutex_unlock(&ports->devr->mutex); in pkey_change_handler()
4243 schedule_work(&ibdev->devr.ports[port - 1].pkey_change_work); in mlx5_ib_handle_event()
4522 static int create_dev_resources(struct mlx5_ib_resources *devr) in create_dev_resources() argument
4530 dev = container_of(devr, struct mlx5_ib_dev, devr); in create_dev_resources()
4532 mutex_init(&devr->mutex); in create_dev_resources()
4534 devr->p0 = mlx5_ib_alloc_pd(&dev->ib_dev, NULL, NULL); in create_dev_resources()
4535 if (IS_ERR(devr->p0)) { in create_dev_resources()
4536 ret = PTR_ERR(devr->p0); in create_dev_resources()
4539 devr->p0->device = &dev->ib_dev; in create_dev_resources()
4540 devr->p0->uobject = NULL; in create_dev_resources()
4541 atomic_set(&devr->p0->usecnt, 0); in create_dev_resources()
4543 devr->c0 = mlx5_ib_create_cq(&dev->ib_dev, &cq_attr, NULL, NULL); in create_dev_resources()
4544 if (IS_ERR(devr->c0)) { in create_dev_resources()
4545 ret = PTR_ERR(devr->c0); in create_dev_resources()
4548 devr->c0->device = &dev->ib_dev; in create_dev_resources()
4549 devr->c0->uobject = NULL; in create_dev_resources()
4550 devr->c0->comp_handler = NULL; in create_dev_resources()
4551 devr->c0->event_handler = NULL; in create_dev_resources()
4552 devr->c0->cq_context = NULL; in create_dev_resources()
4553 atomic_set(&devr->c0->usecnt, 0); in create_dev_resources()
4555 devr->x0 = mlx5_ib_alloc_xrcd(&dev->ib_dev, NULL, NULL); in create_dev_resources()
4556 if (IS_ERR(devr->x0)) { in create_dev_resources()
4557 ret = PTR_ERR(devr->x0); in create_dev_resources()
4560 devr->x0->device = &dev->ib_dev; in create_dev_resources()
4561 devr->x0->inode = NULL; in create_dev_resources()
4562 atomic_set(&devr->x0->usecnt, 0); in create_dev_resources()
4563 mutex_init(&devr->x0->tgt_qp_mutex); in create_dev_resources()
4564 INIT_LIST_HEAD(&devr->x0->tgt_qp_list); in create_dev_resources()
4566 devr->x1 = mlx5_ib_alloc_xrcd(&dev->ib_dev, NULL, NULL); in create_dev_resources()
4567 if (IS_ERR(devr->x1)) { in create_dev_resources()
4568 ret = PTR_ERR(devr->x1); in create_dev_resources()
4571 devr->x1->device = &dev->ib_dev; in create_dev_resources()
4572 devr->x1->inode = NULL; in create_dev_resources()
4573 atomic_set(&devr->x1->usecnt, 0); in create_dev_resources()
4574 mutex_init(&devr->x1->tgt_qp_mutex); in create_dev_resources()
4575 INIT_LIST_HEAD(&devr->x1->tgt_qp_list); in create_dev_resources()
4581 attr.ext.cq = devr->c0; in create_dev_resources()
4582 attr.ext.xrc.xrcd = devr->x0; in create_dev_resources()
4584 devr->s0 = mlx5_ib_create_srq(devr->p0, &attr, NULL); in create_dev_resources()
4585 if (IS_ERR(devr->s0)) { in create_dev_resources()
4586 ret = PTR_ERR(devr->s0); in create_dev_resources()
4589 devr->s0->device = &dev->ib_dev; in create_dev_resources()
4590 devr->s0->pd = devr->p0; in create_dev_resources()
4591 devr->s0->uobject = NULL; in create_dev_resources()
4592 devr->s0->event_handler = NULL; in create_dev_resources()
4593 devr->s0->srq_context = NULL; in create_dev_resources()
4594 devr->s0->srq_type = IB_SRQT_XRC; in create_dev_resources()
4595 devr->s0->ext.xrc.xrcd = devr->x0; in create_dev_resources()
4596 devr->s0->ext.cq = devr->c0; in create_dev_resources()
4597 atomic_inc(&devr->s0->ext.xrc.xrcd->usecnt); in create_dev_resources()
4598 atomic_inc(&devr->s0->ext.cq->usecnt); in create_dev_resources()
4599 atomic_inc(&devr->p0->usecnt); in create_dev_resources()
4600 atomic_set(&devr->s0->usecnt, 0); in create_dev_resources()
4606 devr->s1 = mlx5_ib_create_srq(devr->p0, &attr, NULL); in create_dev_resources()
4607 if (IS_ERR(devr->s1)) { in create_dev_resources()
4608 ret = PTR_ERR(devr->s1); in create_dev_resources()
4611 devr->s1->device = &dev->ib_dev; in create_dev_resources()
4612 devr->s1->pd = devr->p0; in create_dev_resources()
4613 devr->s1->uobject = NULL; in create_dev_resources()
4614 devr->s1->event_handler = NULL; in create_dev_resources()
4615 devr->s1->srq_context = NULL; in create_dev_resources()
4616 devr->s1->srq_type = IB_SRQT_BASIC; in create_dev_resources()
4617 devr->s1->ext.cq = devr->c0; in create_dev_resources()
4618 atomic_inc(&devr->p0->usecnt); in create_dev_resources()
4619 atomic_set(&devr->s1->usecnt, 0); in create_dev_resources()
4621 for (port = 0; port < ARRAY_SIZE(devr->ports); ++port) { in create_dev_resources()
4622 INIT_WORK(&devr->ports[port].pkey_change_work, in create_dev_resources()
4624 devr->ports[port].devr = devr; in create_dev_resources()
4630 mlx5_ib_destroy_srq(devr->s0); in create_dev_resources()
4632 mlx5_ib_dealloc_xrcd(devr->x1); in create_dev_resources()
4634 mlx5_ib_dealloc_xrcd(devr->x0); in create_dev_resources()
4636 mlx5_ib_destroy_cq(devr->c0); in create_dev_resources()
4638 mlx5_ib_dealloc_pd(devr->p0); in create_dev_resources()
4643 static void destroy_dev_resources(struct mlx5_ib_resources *devr) in destroy_dev_resources() argument
4646 container_of(devr, struct mlx5_ib_dev, devr); in destroy_dev_resources()
4649 mlx5_ib_destroy_srq(devr->s1); in destroy_dev_resources()
4650 mlx5_ib_destroy_srq(devr->s0); in destroy_dev_resources()
4651 mlx5_ib_dealloc_xrcd(devr->x0); in destroy_dev_resources()
4652 mlx5_ib_dealloc_xrcd(devr->x1); in destroy_dev_resources()
4653 mlx5_ib_destroy_cq(devr->c0); in destroy_dev_resources()
4654 mlx5_ib_dealloc_pd(devr->p0); in destroy_dev_resources()
4658 cancel_work_sync(&devr->ports[port].pkey_change_work); in destroy_dev_resources()
6006 return create_dev_resources(&dev->devr); in mlx5_ib_stage_dev_res_init()
6011 destroy_dev_resources(&dev->devr); in mlx5_ib_stage_dev_res_cleanup()