Merge tag 'for-linus-4.9-rc2-ofs-1' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / drivers / crypto / omap-des.c
index 5691434..a6f6553 100644 (file)
@@ -39,6 +39,7 @@
 #include <crypto/scatterwalk.h>
 #include <crypto/des.h>
 #include <crypto/algapi.h>
+#include <crypto/engine.h>
 
 #define DST_MAXBURST                   2
 
@@ -506,7 +507,7 @@ static void omap_des_finish_req(struct omap_des_dev *dd, int err)
        pr_debug("err: %d\n", err);
 
        pm_runtime_put(dd->dev);
-       crypto_finalize_request(dd->engine, req, err);
+       crypto_finalize_cipher_request(dd->engine, req, err);
 }
 
 static int omap_des_crypt_dma_stop(struct omap_des_dev *dd)
@@ -574,7 +575,7 @@ static int omap_des_handle_queue(struct omap_des_dev *dd,
                                 struct ablkcipher_request *req)
 {
        if (req)
-               return crypto_transfer_request_to_engine(dd->engine, req);
+               return crypto_transfer_cipher_request_to_engine(dd->engine, req);
 
        return 0;
 }
@@ -1078,6 +1079,19 @@ static int omap_des_probe(struct platform_device *pdev)
        list_add_tail(&dd->list, &dev_list);
        spin_unlock(&list_lock);
 
+       /* Initialize des crypto engine */
+       dd->engine = crypto_engine_alloc_init(dev, 1);
+       if (!dd->engine) {
+               err = -ENOMEM;
+               goto err_engine;
+       }
+
+       dd->engine->prepare_cipher_request = omap_des_prepare_req;
+       dd->engine->cipher_one_request = omap_des_crypt_req;
+       err = crypto_engine_start(dd->engine);
+       if (err)
+               goto err_engine;
+
        for (i = 0; i < dd->pdata->algs_info_size; i++) {
                for (j = 0; j < dd->pdata->algs_info[i].size; j++) {
                        algp = &dd->pdata->algs_info[i].algs_list[j];
@@ -1093,27 +1107,18 @@ static int omap_des_probe(struct platform_device *pdev)
                }
        }
 
-       /* Initialize des crypto engine */
-       dd->engine = crypto_engine_alloc_init(dev, 1);
-       if (!dd->engine)
-               goto err_algs;
-
-       dd->engine->prepare_request = omap_des_prepare_req;
-       dd->engine->crypt_one_request = omap_des_crypt_req;
-       err = crypto_engine_start(dd->engine);
-       if (err)
-               goto err_engine;
-
        return 0;
 
-err_engine:
-       crypto_engine_exit(dd->engine);
 err_algs:
        for (i = dd->pdata->algs_info_size - 1; i >= 0; i--)
                for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--)
                        crypto_unregister_alg(
                                        &dd->pdata->algs_info[i].algs_list[j]);
 
+err_engine:
+       if (dd->engine)
+               crypto_engine_exit(dd->engine);
+
        omap_des_dma_cleanup(dd);
 err_irq:
        tasklet_kill(&dd->done_task);