crypto: sahara - use the backlog
[firefly-linux-kernel-4.4.55.git] / 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) {