Lines Matching refs:devr
1185 static int create_dev_resources(struct mlx5_ib_resources *devr) in create_dev_resources() argument
1192 dev = container_of(devr, struct mlx5_ib_dev, devr); in create_dev_resources()
1194 devr->p0 = mlx5_ib_alloc_pd(&dev->ib_dev, NULL, NULL); in create_dev_resources()
1195 if (IS_ERR(devr->p0)) { in create_dev_resources()
1196 ret = PTR_ERR(devr->p0); in create_dev_resources()
1199 devr->p0->device = &dev->ib_dev; in create_dev_resources()
1200 devr->p0->uobject = NULL; in create_dev_resources()
1201 atomic_set(&devr->p0->usecnt, 0); in create_dev_resources()
1203 devr->c0 = mlx5_ib_create_cq(&dev->ib_dev, &cq_attr, NULL, NULL); in create_dev_resources()
1204 if (IS_ERR(devr->c0)) { in create_dev_resources()
1205 ret = PTR_ERR(devr->c0); in create_dev_resources()
1208 devr->c0->device = &dev->ib_dev; in create_dev_resources()
1209 devr->c0->uobject = NULL; in create_dev_resources()
1210 devr->c0->comp_handler = NULL; in create_dev_resources()
1211 devr->c0->event_handler = NULL; in create_dev_resources()
1212 devr->c0->cq_context = NULL; in create_dev_resources()
1213 atomic_set(&devr->c0->usecnt, 0); in create_dev_resources()
1215 devr->x0 = mlx5_ib_alloc_xrcd(&dev->ib_dev, NULL, NULL); in create_dev_resources()
1216 if (IS_ERR(devr->x0)) { in create_dev_resources()
1217 ret = PTR_ERR(devr->x0); in create_dev_resources()
1220 devr->x0->device = &dev->ib_dev; in create_dev_resources()
1221 devr->x0->inode = NULL; in create_dev_resources()
1222 atomic_set(&devr->x0->usecnt, 0); in create_dev_resources()
1223 mutex_init(&devr->x0->tgt_qp_mutex); in create_dev_resources()
1224 INIT_LIST_HEAD(&devr->x0->tgt_qp_list); in create_dev_resources()
1226 devr->x1 = mlx5_ib_alloc_xrcd(&dev->ib_dev, NULL, NULL); in create_dev_resources()
1227 if (IS_ERR(devr->x1)) { in create_dev_resources()
1228 ret = PTR_ERR(devr->x1); in create_dev_resources()
1231 devr->x1->device = &dev->ib_dev; in create_dev_resources()
1232 devr->x1->inode = NULL; in create_dev_resources()
1233 atomic_set(&devr->x1->usecnt, 0); in create_dev_resources()
1234 mutex_init(&devr->x1->tgt_qp_mutex); in create_dev_resources()
1235 INIT_LIST_HEAD(&devr->x1->tgt_qp_list); in create_dev_resources()
1241 attr.ext.xrc.cq = devr->c0; in create_dev_resources()
1242 attr.ext.xrc.xrcd = devr->x0; in create_dev_resources()
1244 devr->s0 = mlx5_ib_create_srq(devr->p0, &attr, NULL); in create_dev_resources()
1245 if (IS_ERR(devr->s0)) { in create_dev_resources()
1246 ret = PTR_ERR(devr->s0); in create_dev_resources()
1249 devr->s0->device = &dev->ib_dev; in create_dev_resources()
1250 devr->s0->pd = devr->p0; in create_dev_resources()
1251 devr->s0->uobject = NULL; in create_dev_resources()
1252 devr->s0->event_handler = NULL; in create_dev_resources()
1253 devr->s0->srq_context = NULL; in create_dev_resources()
1254 devr->s0->srq_type = IB_SRQT_XRC; in create_dev_resources()
1255 devr->s0->ext.xrc.xrcd = devr->x0; in create_dev_resources()
1256 devr->s0->ext.xrc.cq = devr->c0; in create_dev_resources()
1257 atomic_inc(&devr->s0->ext.xrc.xrcd->usecnt); in create_dev_resources()
1258 atomic_inc(&devr->s0->ext.xrc.cq->usecnt); in create_dev_resources()
1259 atomic_inc(&devr->p0->usecnt); in create_dev_resources()
1260 atomic_set(&devr->s0->usecnt, 0); in create_dev_resources()
1266 devr->s1 = mlx5_ib_create_srq(devr->p0, &attr, NULL); in create_dev_resources()
1267 if (IS_ERR(devr->s1)) { in create_dev_resources()
1268 ret = PTR_ERR(devr->s1); in create_dev_resources()
1271 devr->s1->device = &dev->ib_dev; in create_dev_resources()
1272 devr->s1->pd = devr->p0; in create_dev_resources()
1273 devr->s1->uobject = NULL; in create_dev_resources()
1274 devr->s1->event_handler = NULL; in create_dev_resources()
1275 devr->s1->srq_context = NULL; in create_dev_resources()
1276 devr->s1->srq_type = IB_SRQT_BASIC; in create_dev_resources()
1277 devr->s1->ext.xrc.cq = devr->c0; in create_dev_resources()
1278 atomic_inc(&devr->p0->usecnt); in create_dev_resources()
1279 atomic_set(&devr->s0->usecnt, 0); in create_dev_resources()
1284 mlx5_ib_destroy_srq(devr->s0); in create_dev_resources()
1286 mlx5_ib_dealloc_xrcd(devr->x1); in create_dev_resources()
1288 mlx5_ib_dealloc_xrcd(devr->x0); in create_dev_resources()
1290 mlx5_ib_destroy_cq(devr->c0); in create_dev_resources()
1292 mlx5_ib_dealloc_pd(devr->p0); in create_dev_resources()
1297 static void destroy_dev_resources(struct mlx5_ib_resources *devr) in destroy_dev_resources() argument
1299 mlx5_ib_destroy_srq(devr->s1); in destroy_dev_resources()
1300 mlx5_ib_destroy_srq(devr->s0); in destroy_dev_resources()
1301 mlx5_ib_dealloc_xrcd(devr->x0); in destroy_dev_resources()
1302 mlx5_ib_dealloc_xrcd(devr->x1); in destroy_dev_resources()
1303 mlx5_ib_destroy_cq(devr->c0); in destroy_dev_resources()
1304 mlx5_ib_dealloc_pd(devr->p0); in destroy_dev_resources()
1448 err = create_dev_resources(&dev->devr); in mlx5_ib_add()
1485 destroy_dev_resources(&dev->devr); in mlx5_ib_add()
1500 destroy_dev_resources(&dev->devr); in mlx5_ib_remove()