crypto: sahara - use the backlog
authorSteffen Trumtrar <s.trumtrar@pengutronix.de>
Tue, 7 Apr 2015 15:13:41 +0000 (17:13 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 8 Apr 2015 14:20:06 +0000 (22:20 +0800)
With commit

7e77bdebff5cb1e9876c561f69710b9ab8fa1f7e crypto: af_alg - fix backlog handling

in place, the backlog works under all circumstances where it previously failed, atleast
for the sahara driver. Use it.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/sahara.c

index c38553ed792c8f8ab8c76e9400864903377d341d..052562dcd302b31646e8b4d8d9c277eb98c01d6d 100644 (file)
@@ -1096,15 +1096,20 @@ static int sahara_queue_manage(void *data)
 {
        struct sahara_dev *dev = (struct sahara_dev *)data;
        struct crypto_async_request *async_req;
+       struct crypto_async_request *backlog;
        int ret = 0;
 
        do {
                __set_current_state(TASK_INTERRUPTIBLE);
 
                mutex_lock(&dev->queue_mutex);
+               backlog = crypto_get_backlog(&dev->queue);
                async_req = crypto_dequeue_request(&dev->queue);
                mutex_unlock(&dev->queue_mutex);
 
+               if (backlog)
+                       backlog->complete(backlog, -EINPROGRESS);
+
                if (async_req) {
                        if (crypto_tfm_alg_type(async_req->tfm) ==
                            CRYPTO_ALG_TYPE_AHASH) {