Lines Matching refs:ctx_list
23 static struct crypto_ctx_list ctx_list; variable
116 spin_lock(&ctx_list.ctx_lock); in ksmbd_find_crypto_ctx()
117 if (!list_empty(&ctx_list.idle_ctx)) { in ksmbd_find_crypto_ctx()
118 ctx = list_entry(ctx_list.idle_ctx.next, in ksmbd_find_crypto_ctx()
122 spin_unlock(&ctx_list.ctx_lock); in ksmbd_find_crypto_ctx()
126 if (ctx_list.avail_ctx > num_online_cpus()) { in ksmbd_find_crypto_ctx()
127 spin_unlock(&ctx_list.ctx_lock); in ksmbd_find_crypto_ctx()
128 wait_event(ctx_list.ctx_wait, in ksmbd_find_crypto_ctx()
129 !list_empty(&ctx_list.idle_ctx)); in ksmbd_find_crypto_ctx()
133 ctx_list.avail_ctx++; in ksmbd_find_crypto_ctx()
134 spin_unlock(&ctx_list.ctx_lock); in ksmbd_find_crypto_ctx()
138 spin_lock(&ctx_list.ctx_lock); in ksmbd_find_crypto_ctx()
139 ctx_list.avail_ctx--; in ksmbd_find_crypto_ctx()
140 spin_unlock(&ctx_list.ctx_lock); in ksmbd_find_crypto_ctx()
141 wait_event(ctx_list.ctx_wait, in ksmbd_find_crypto_ctx()
142 !list_empty(&ctx_list.idle_ctx)); in ksmbd_find_crypto_ctx()
155 spin_lock(&ctx_list.ctx_lock); in ksmbd_release_crypto_ctx()
156 if (ctx_list.avail_ctx <= num_online_cpus()) { in ksmbd_release_crypto_ctx()
157 list_add(&ctx->list, &ctx_list.idle_ctx); in ksmbd_release_crypto_ctx()
158 spin_unlock(&ctx_list.ctx_lock); in ksmbd_release_crypto_ctx()
159 wake_up(&ctx_list.ctx_wait); in ksmbd_release_crypto_ctx()
163 ctx_list.avail_ctx--; in ksmbd_release_crypto_ctx()
164 spin_unlock(&ctx_list.ctx_lock); in ksmbd_release_crypto_ctx()
243 while (!list_empty(&ctx_list.idle_ctx)) { in ksmbd_crypto_destroy()
244 ctx = list_entry(ctx_list.idle_ctx.next, in ksmbd_crypto_destroy()
256 spin_lock_init(&ctx_list.ctx_lock); in ksmbd_crypto_create()
257 INIT_LIST_HEAD(&ctx_list.idle_ctx); in ksmbd_crypto_create()
258 init_waitqueue_head(&ctx_list.ctx_wait); in ksmbd_crypto_create()
259 ctx_list.avail_ctx = 1; in ksmbd_crypto_create()
264 list_add(&ctx->list, &ctx_list.idle_ctx); in ksmbd_crypto_create()