Lines Matching refs:ctxdata
106 static int ureq_enqueue(struct qcomtee_context_data *ctxdata, in ureq_enqueue() argument
111 guard(mutex)(&ctxdata->reqs_lock); in ureq_enqueue()
113 if (ctxdata->released) in ureq_enqueue()
117 ret = idr_alloc(&ctxdata->reqs_idr, ureq, 0, 0, GFP_KERNEL); in ureq_enqueue()
123 list_add_tail(&ureq->node, &ctxdata->reqs_list); in ureq_enqueue()
138 static struct qcomtee_ureq *ureq_dequeue(struct qcomtee_context_data *ctxdata, in ureq_dequeue() argument
143 ureq = idr_remove(&ctxdata->reqs_idr, req_id); in ureq_dequeue()
165 static struct qcomtee_ureq *ureq_select(struct qcomtee_context_data *ctxdata, in ureq_select() argument
173 list_for_each_entry(req, &ctxdata->reqs_list, node) { in ureq_select()
200 void qcomtee_requests_destroy(struct qcomtee_context_data *ctxdata) in qcomtee_requests_destroy() argument
204 guard(mutex)(&ctxdata->reqs_lock); in qcomtee_requests_destroy()
206 ctxdata->released = true; in qcomtee_requests_destroy()
208 list_for_each_entry_safe(ureq, req, &ctxdata->reqs_list, node) { in qcomtee_requests_destroy()
209 ureq_dequeue(ctxdata, ureq->req_id); in qcomtee_requests_destroy()
230 struct qcomtee_context_data *ctxdata = uo->ctx->data; in qcomtee_user_object_dispatch() local
244 if (ureq_enqueue(ctxdata, ureq)) in qcomtee_user_object_dispatch()
247 complete(&ctxdata->req_c); in qcomtee_user_object_dispatch()
268 scoped_guard(mutex, &ctxdata->reqs_lock) { in qcomtee_user_object_dispatch()
273 idr_replace(&ctxdata->reqs_idr, in qcomtee_user_object_dispatch()
278 ureq_dequeue(ctxdata, ureq->req_id); in qcomtee_user_object_dispatch()
320 struct qcomtee_context_data *ctxdata = uo->ctx->data; in qcomtee_user_object_release() local
337 if (ureq_enqueue(ctxdata, ureq)) { in qcomtee_user_object_release()
343 complete(&ctxdata->req_c); in qcomtee_user_object_release()
590 struct qcomtee_context_data *ctxdata = ctx->data; in qcomtee_user_object_select() local
602 scoped_guard(mutex, &ctxdata->reqs_lock) { in qcomtee_user_object_select()
603 ureq = ureq_select(ctxdata, size, num_params); in qcomtee_user_object_select()
623 ureq_dequeue(ctxdata, data->id); in qcomtee_user_object_select()
634 if (wait_for_completion_interruptible(&ctxdata->req_c)) in qcomtee_user_object_select()
641 scoped_guard(mutex, &ctxdata->reqs_lock) in qcomtee_user_object_select()
642 ureq_dequeue(ctxdata, data->id); in qcomtee_user_object_select()
665 struct qcomtee_context_data *ctxdata = ctx->data; in qcomtee_user_object_submit() local
669 guard(mutex)(&ctxdata->reqs_lock); in qcomtee_user_object_submit()
671 ureq = ureq_dequeue(ctxdata, req_id); in qcomtee_user_object_submit()