Lines Matching refs:devr

2820 		schedule_work(&ibdev->devr.ports[port - 1].pkey_change_work);  in handle_port_change()
3028 struct mlx5_ib_resources *devr = &dev->devr; in mlx5_ib_dev_res_init() local
3040 mutex_init(&devr->mutex); in mlx5_ib_dev_res_init()
3042 devr->p0 = rdma_zalloc_drv_obj(ibdev, ib_pd); in mlx5_ib_dev_res_init()
3043 if (!devr->p0) in mlx5_ib_dev_res_init()
3046 devr->p0->device = ibdev; in mlx5_ib_dev_res_init()
3047 devr->p0->uobject = NULL; in mlx5_ib_dev_res_init()
3048 atomic_set(&devr->p0->usecnt, 0); in mlx5_ib_dev_res_init()
3050 ret = mlx5_ib_alloc_pd(devr->p0, NULL); in mlx5_ib_dev_res_init()
3054 devr->c0 = rdma_zalloc_drv_obj(ibdev, ib_cq); in mlx5_ib_dev_res_init()
3055 if (!devr->c0) { in mlx5_ib_dev_res_init()
3060 devr->c0->device = &dev->ib_dev; in mlx5_ib_dev_res_init()
3061 atomic_set(&devr->c0->usecnt, 0); in mlx5_ib_dev_res_init()
3063 ret = mlx5_ib_create_cq(devr->c0, &cq_attr, NULL); in mlx5_ib_dev_res_init()
3067 ret = mlx5_cmd_xrcd_alloc(dev->mdev, &devr->xrcdn0, 0); in mlx5_ib_dev_res_init()
3071 ret = mlx5_cmd_xrcd_alloc(dev->mdev, &devr->xrcdn1, 0); in mlx5_ib_dev_res_init()
3079 attr.ext.cq = devr->c0; in mlx5_ib_dev_res_init()
3081 devr->s0 = rdma_zalloc_drv_obj(ibdev, ib_srq); in mlx5_ib_dev_res_init()
3082 if (!devr->s0) { in mlx5_ib_dev_res_init()
3087 devr->s0->device = &dev->ib_dev; in mlx5_ib_dev_res_init()
3088 devr->s0->pd = devr->p0; in mlx5_ib_dev_res_init()
3089 devr->s0->srq_type = IB_SRQT_XRC; in mlx5_ib_dev_res_init()
3090 devr->s0->ext.cq = devr->c0; in mlx5_ib_dev_res_init()
3091 ret = mlx5_ib_create_srq(devr->s0, &attr, NULL); in mlx5_ib_dev_res_init()
3095 atomic_inc(&devr->s0->ext.cq->usecnt); in mlx5_ib_dev_res_init()
3096 atomic_inc(&devr->p0->usecnt); in mlx5_ib_dev_res_init()
3097 atomic_set(&devr->s0->usecnt, 0); in mlx5_ib_dev_res_init()
3103 devr->s1 = rdma_zalloc_drv_obj(ibdev, ib_srq); in mlx5_ib_dev_res_init()
3104 if (!devr->s1) { in mlx5_ib_dev_res_init()
3109 devr->s1->device = &dev->ib_dev; in mlx5_ib_dev_res_init()
3110 devr->s1->pd = devr->p0; in mlx5_ib_dev_res_init()
3111 devr->s1->srq_type = IB_SRQT_BASIC; in mlx5_ib_dev_res_init()
3112 devr->s1->ext.cq = devr->c0; in mlx5_ib_dev_res_init()
3114 ret = mlx5_ib_create_srq(devr->s1, &attr, NULL); in mlx5_ib_dev_res_init()
3118 atomic_inc(&devr->p0->usecnt); in mlx5_ib_dev_res_init()
3119 atomic_set(&devr->s1->usecnt, 0); in mlx5_ib_dev_res_init()
3121 for (port = 0; port < ARRAY_SIZE(devr->ports); ++port) in mlx5_ib_dev_res_init()
3122 INIT_WORK(&devr->ports[port].pkey_change_work, in mlx5_ib_dev_res_init()
3128 kfree(devr->s1); in mlx5_ib_dev_res_init()
3130 mlx5_ib_destroy_srq(devr->s0, NULL); in mlx5_ib_dev_res_init()
3132 kfree(devr->s0); in mlx5_ib_dev_res_init()
3134 mlx5_cmd_xrcd_dealloc(dev->mdev, devr->xrcdn1, 0); in mlx5_ib_dev_res_init()
3136 mlx5_cmd_xrcd_dealloc(dev->mdev, devr->xrcdn0, 0); in mlx5_ib_dev_res_init()
3138 mlx5_ib_destroy_cq(devr->c0, NULL); in mlx5_ib_dev_res_init()
3140 kfree(devr->c0); in mlx5_ib_dev_res_init()
3142 mlx5_ib_dealloc_pd(devr->p0, NULL); in mlx5_ib_dev_res_init()
3144 kfree(devr->p0); in mlx5_ib_dev_res_init()
3150 struct mlx5_ib_resources *devr = &dev->devr; in mlx5_ib_dev_res_cleanup() local
3153 mlx5_ib_destroy_srq(devr->s1, NULL); in mlx5_ib_dev_res_cleanup()
3154 kfree(devr->s1); in mlx5_ib_dev_res_cleanup()
3155 mlx5_ib_destroy_srq(devr->s0, NULL); in mlx5_ib_dev_res_cleanup()
3156 kfree(devr->s0); in mlx5_ib_dev_res_cleanup()
3157 mlx5_cmd_xrcd_dealloc(dev->mdev, devr->xrcdn1, 0); in mlx5_ib_dev_res_cleanup()
3158 mlx5_cmd_xrcd_dealloc(dev->mdev, devr->xrcdn0, 0); in mlx5_ib_dev_res_cleanup()
3159 mlx5_ib_destroy_cq(devr->c0, NULL); in mlx5_ib_dev_res_cleanup()
3160 kfree(devr->c0); in mlx5_ib_dev_res_cleanup()
3161 mlx5_ib_dealloc_pd(devr->p0, NULL); in mlx5_ib_dev_res_cleanup()
3162 kfree(devr->p0); in mlx5_ib_dev_res_cleanup()
3165 for (port = 0; port < ARRAY_SIZE(devr->ports); ++port) in mlx5_ib_dev_res_cleanup()
3166 cancel_work_sync(&devr->ports[port].pkey_change_work); in mlx5_ib_dev_res_cleanup()