uverbs_dev        185 drivers/infiniband/core/rdma_core.h void uverbs_disassociate_api_pre(struct ib_uverbs_device *uverbs_dev);
uverbs_dev       1157 drivers/infiniband/core/uverbs_main.c 	struct ib_uverbs_device *uverbs_dev = client_data;
uverbs_dev       1164 drivers/infiniband/core/uverbs_main.c 	res->cdev = &uverbs_dev->dev;
uverbs_dev       1242 drivers/infiniband/core/uverbs_main.c 				 struct ib_uverbs_device *uverbs_dev)
uverbs_dev       1250 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->uapi = uapi;
uverbs_dev       1258 drivers/infiniband/core/uverbs_main.c 	struct ib_uverbs_device *uverbs_dev;
uverbs_dev       1264 drivers/infiniband/core/uverbs_main.c 	uverbs_dev = kzalloc(sizeof(*uverbs_dev), GFP_KERNEL);
uverbs_dev       1265 drivers/infiniband/core/uverbs_main.c 	if (!uverbs_dev)
uverbs_dev       1268 drivers/infiniband/core/uverbs_main.c 	ret = init_srcu_struct(&uverbs_dev->disassociate_srcu);
uverbs_dev       1270 drivers/infiniband/core/uverbs_main.c 		kfree(uverbs_dev);
uverbs_dev       1274 drivers/infiniband/core/uverbs_main.c 	device_initialize(&uverbs_dev->dev);
uverbs_dev       1275 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->dev.class = uverbs_class;
uverbs_dev       1276 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->dev.parent = device->dev.parent;
uverbs_dev       1277 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->dev.release = ib_uverbs_release_dev;
uverbs_dev       1278 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->groups[0] = &dev_attr_group;
uverbs_dev       1279 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->dev.groups = uverbs_dev->groups;
uverbs_dev       1280 drivers/infiniband/core/uverbs_main.c 	atomic_set(&uverbs_dev->refcount, 1);
uverbs_dev       1281 drivers/infiniband/core/uverbs_main.c 	init_completion(&uverbs_dev->comp);
uverbs_dev       1282 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->xrcd_tree = RB_ROOT;
uverbs_dev       1283 drivers/infiniband/core/uverbs_main.c 	mutex_init(&uverbs_dev->xrcd_tree_mutex);
uverbs_dev       1284 drivers/infiniband/core/uverbs_main.c 	mutex_init(&uverbs_dev->lists_mutex);
uverbs_dev       1285 drivers/infiniband/core/uverbs_main.c 	INIT_LIST_HEAD(&uverbs_dev->uverbs_file_list);
uverbs_dev       1286 drivers/infiniband/core/uverbs_main.c 	INIT_LIST_HEAD(&uverbs_dev->uverbs_events_file_list);
uverbs_dev       1287 drivers/infiniband/core/uverbs_main.c 	rcu_assign_pointer(uverbs_dev->ib_dev, device);
uverbs_dev       1288 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->num_comp_vectors = device->num_comp_vectors;
uverbs_dev       1294 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->devnum = devnum;
uverbs_dev       1300 drivers/infiniband/core/uverbs_main.c 	if (ib_uverbs_create_uapi(device, uverbs_dev))
uverbs_dev       1303 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->dev.devt = base;
uverbs_dev       1304 drivers/infiniband/core/uverbs_main.c 	dev_set_name(&uverbs_dev->dev, "uverbs%d", uverbs_dev->devnum);
uverbs_dev       1306 drivers/infiniband/core/uverbs_main.c 	cdev_init(&uverbs_dev->cdev,
uverbs_dev       1308 drivers/infiniband/core/uverbs_main.c 	uverbs_dev->cdev.owner = THIS_MODULE;
uverbs_dev       1310 drivers/infiniband/core/uverbs_main.c 	ret = cdev_device_add(&uverbs_dev->cdev, &uverbs_dev->dev);
uverbs_dev       1314 drivers/infiniband/core/uverbs_main.c 	ib_set_client_data(device, &uverbs_client, uverbs_dev);
uverbs_dev       1320 drivers/infiniband/core/uverbs_main.c 	if (atomic_dec_and_test(&uverbs_dev->refcount))
uverbs_dev       1321 drivers/infiniband/core/uverbs_main.c 		ib_uverbs_comp_dev(uverbs_dev);
uverbs_dev       1322 drivers/infiniband/core/uverbs_main.c 	wait_for_completion(&uverbs_dev->comp);
uverbs_dev       1323 drivers/infiniband/core/uverbs_main.c 	put_device(&uverbs_dev->dev);
uverbs_dev       1327 drivers/infiniband/core/uverbs_main.c static void ib_uverbs_free_hw_resources(struct ib_uverbs_device *uverbs_dev,
uverbs_dev       1335 drivers/infiniband/core/uverbs_main.c 	uverbs_disassociate_api_pre(uverbs_dev);
uverbs_dev       1340 drivers/infiniband/core/uverbs_main.c 	mutex_lock(&uverbs_dev->lists_mutex);
uverbs_dev       1341 drivers/infiniband/core/uverbs_main.c 	while (!list_empty(&uverbs_dev->uverbs_file_list)) {
uverbs_dev       1342 drivers/infiniband/core/uverbs_main.c 		file = list_first_entry(&uverbs_dev->uverbs_file_list,
uverbs_dev       1352 drivers/infiniband/core/uverbs_main.c 		mutex_unlock(&uverbs_dev->lists_mutex);
uverbs_dev       1358 drivers/infiniband/core/uverbs_main.c 		mutex_lock(&uverbs_dev->lists_mutex);
uverbs_dev       1361 drivers/infiniband/core/uverbs_main.c 	while (!list_empty(&uverbs_dev->uverbs_events_file_list)) {
uverbs_dev       1362 drivers/infiniband/core/uverbs_main.c 		event_file = list_first_entry(&uverbs_dev->
uverbs_dev       1379 drivers/infiniband/core/uverbs_main.c 	mutex_unlock(&uverbs_dev->lists_mutex);
uverbs_dev       1381 drivers/infiniband/core/uverbs_main.c 	uverbs_disassociate_api(uverbs_dev->uapi);
uverbs_dev       1386 drivers/infiniband/core/uverbs_main.c 	struct ib_uverbs_device *uverbs_dev = client_data;
uverbs_dev       1389 drivers/infiniband/core/uverbs_main.c 	if (!uverbs_dev)
uverbs_dev       1392 drivers/infiniband/core/uverbs_main.c 	cdev_device_del(&uverbs_dev->cdev, &uverbs_dev->dev);
uverbs_dev       1393 drivers/infiniband/core/uverbs_main.c 	ida_free(&uverbs_ida, uverbs_dev->devnum);
uverbs_dev       1407 drivers/infiniband/core/uverbs_main.c 		ib_uverbs_free_hw_resources(uverbs_dev, device);
uverbs_dev       1411 drivers/infiniband/core/uverbs_main.c 	if (atomic_dec_and_test(&uverbs_dev->refcount))
uverbs_dev       1412 drivers/infiniband/core/uverbs_main.c 		ib_uverbs_comp_dev(uverbs_dev);
uverbs_dev       1414 drivers/infiniband/core/uverbs_main.c 		wait_for_completion(&uverbs_dev->comp);
uverbs_dev       1416 drivers/infiniband/core/uverbs_main.c 	put_device(&uverbs_dev->dev);
uverbs_dev        680 drivers/infiniband/core/uverbs_uapi.c void uverbs_disassociate_api_pre(struct ib_uverbs_device *uverbs_dev)
uverbs_dev        682 drivers/infiniband/core/uverbs_uapi.c 	struct uverbs_api *uapi = uverbs_dev->uapi;
uverbs_dev        686 drivers/infiniband/core/uverbs_uapi.c 	rcu_assign_pointer(uverbs_dev->ib_dev, NULL);
uverbs_dev        698 drivers/infiniband/core/uverbs_uapi.c 	synchronize_srcu(&uverbs_dev->disassociate_srcu);