Lines Matching defs:sess

51 static void release_session(struct amdtee_session *sess)
58 if (!test_bit(i, sess->sess_mask))
61 handle_close_session(sess->ta_handle, sess->session_info[i]);
62 handle_unload_ta(sess->ta_handle);
65 kfree(sess);
76 struct amdtee_session *sess;
78 sess = list_first_entry_or_null(&ctxdata->sess_list,
82 if (!sess)
85 list_del(&sess->list_node);
86 release_session(sess);
112 struct amdtee_session *sess;
116 list_for_each_entry(sess, &ctxdata->sess_list, list_node)
117 if (sess->ta_handle == ta_handle) {
118 kref_get(&sess->refcount);
119 return sess;
123 sess = kzalloc(sizeof(*sess), GFP_KERNEL);
124 if (sess) {
125 sess->ta_handle = ta_handle;
126 kref_init(&sess->refcount);
127 spin_lock_init(&sess->lock);
128 list_add(&sess->list_node, &ctxdata->sess_list);
131 return sess;
140 struct amdtee_session *sess;
145 list_for_each_entry(sess, &ctxdata->sess_list, list_node)
146 if (ta_handle == sess->ta_handle &&
147 test_bit(index, sess->sess_mask))
148 return sess;
223 struct amdtee_session *sess = container_of(ref, struct amdtee_session,
226 list_del(&sess->list_node);
228 kfree(sess);
236 struct amdtee_session *sess = NULL;
261 sess = alloc_session(ctxdata, arg->session);
264 if (!sess) {
275 kref_put_mutex(&sess->refcount, destroy_session,
281 spin_lock(&sess->lock);
282 i = find_first_zero_bit(sess->sess_mask, TEE_NUM_SESSIONS);
284 sess->session_info[i] = session_info;
286 set_bit(i, sess->sess_mask);
288 spin_unlock(&sess->lock);
294 kref_put_mutex(&sess->refcount, destroy_session,
309 struct amdtee_session *sess;
318 sess = find_session(ctxdata, session);
319 if (sess) {
322 session_info = sess->session_info[i];
323 spin_lock(&sess->lock);
324 clear_bit(i, sess->sess_mask);
325 spin_unlock(&sess->lock);
329 if (!sess)
336 kref_put_mutex(&sess->refcount, destroy_session, &session_list_mutex);
412 struct amdtee_session *sess;
417 sess = find_session(ctxdata, arg->session);
418 if (sess) {
420 session_info = sess->session_info[i];
424 if (!sess)