Lines Matching defs:usr
96 struct qaic_user *usr = container_of(kref, struct qaic_user, ref_count);
98 cleanup_srcu_struct(&usr->qddev_lock);
99 ida_free(&qaic_usrs, usr->handle);
100 kfree(usr);
107 struct qaic_user *usr;
117 usr = kmalloc(sizeof(*usr), GFP_KERNEL);
118 if (!usr) {
123 usr->handle = ida_alloc(&qaic_usrs, GFP_KERNEL);
124 if (usr->handle < 0) {
125 ret = usr->handle;
128 usr->qddev = qddev;
129 atomic_set(&usr->chunk_id, 0);
130 init_srcu_struct(&usr->qddev_lock);
131 kref_init(&usr->ref_count);
137 list_add(&usr->node, &qddev->users);
140 file->driver_priv = usr;
146 cleanup_srcu_struct(&usr->qddev_lock);
147 ida_free(&qaic_usrs, usr->handle);
149 kfree(usr);
157 struct qaic_user *usr = file->driver_priv;
164 qddev = usr->qddev;
165 usr_rcu_id = srcu_read_lock(&usr->qddev_lock);
170 qaic_release_usr(qdev, usr);
172 if (qdev->dbc[i].usr && qdev->dbc[i].usr->handle == usr->handle)
178 if (!list_empty(&usr->node))
179 list_del_init(&usr->node);
183 srcu_read_unlock(&usr->qddev_lock, usr_rcu_id);
184 kref_put(&usr->ref_count, free_usr);
242 struct qaic_user *usr;
262 usr = list_first_entry(&qddev->users, struct qaic_user, node);
263 list_del_init(&usr->node);
264 kref_get(&usr->ref_count);
265 usr->qddev = NULL;
267 synchronize_srcu(&usr->qddev_lock);
268 kref_put(&usr->ref_count, free_usr);