kbuild: improve scripts/gcc-version.sh output a bit when called without args
[cascardo/linux.git] / crypto / cryptd.c
index 3ff4e1f..8bf2da8 100644 (file)
@@ -131,7 +131,7 @@ static int cryptd_blkcipher_enqueue(struct ablkcipher_request *req,
        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);
@@ -173,7 +173,8 @@ static void cryptd_blkcipher_exit_tfm(struct crypto_tfm *tfm)
        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);
@@ -251,8 +252,6 @@ static struct crypto_instance *cryptd_alloc_blkcipher(
        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;
@@ -298,7 +297,7 @@ static inline int cryptd_create_thread(struct cryptd_state *state,
        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);
 
@@ -316,6 +315,8 @@ static int cryptd_thread(void *data)
        struct cryptd_state *state = data;
        int stop;
 
+       current->flags |= PF_NOFREEZE;
+
        do {
                struct crypto_async_request *req, *backlog;