req->base.complete = complete;
spin_lock_bh(&state->lock);
- err = ablkcipher_enqueue_request(crypto_ablkcipher_alg(tfm), req);
+ err = ablkcipher_enqueue_request(&state->queue, req);
spin_unlock_bh(&state->lock);
wake_up_process(state->task);
int active;
mutex_lock(&state->mutex);
- active = ablkcipher_tfm_in_queue(__crypto_ablkcipher_cast(tfm));
+ active = ablkcipher_tfm_in_queue(&state->queue,
+ __crypto_ablkcipher_cast(tfm));
mutex_unlock(&state->mutex);
BUG_ON(active);
inst->alg.cra_ablkcipher.encrypt = cryptd_blkcipher_encrypt_enqueue;
inst->alg.cra_ablkcipher.decrypt = cryptd_blkcipher_decrypt_enqueue;
- inst->alg.cra_ablkcipher.queue = &state->queue;
-
out_put_alg:
crypto_mod_put(alg);
return inst;
mutex_init(&state->mutex);
crypto_init_queue(&state->queue, CRYPTD_MAX_QLEN);
- state->task = kthread_create(fn, state, name);
+ state->task = kthread_run(fn, state, name);
if (IS_ERR(state->task))
return PTR_ERR(state->task);
struct cryptd_state *state = data;
int stop;
+ current->flags |= PF_NOFREEZE;
+
do {
struct crypto_async_request *req, *backlog;