Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/810145/?format=api
{ "id": 810145, "url": "http://patchwork.ozlabs.org/api/patches/810145/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1504615144-29770-12-git-send-email-gilad@benyossef.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1504615144-29770-12-git-send-email-gilad@benyossef.com>", "list_archive_url": null, "date": "2017-09-05T12:38:50", "name": "[v8,11/20] crypto: move testmgr to generic async completion", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": true, "hash": "ad934bb633b1b2f967e66bfc3444147b1ebd9c77", "submitter": { "id": 11198, "url": "http://patchwork.ozlabs.org/api/people/11198/?format=api", "name": "Gilad Ben-Yossef", "email": "gilad@benyossef.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1504615144-29770-12-git-send-email-gilad@benyossef.com/mbox/", "series": [ { "id": 1573, "url": "http://patchwork.ozlabs.org/api/series/1573/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=1573", "date": "2017-09-05T12:38:39", "name": "simplify crypto wait for async op", "version": 8, "mbox": "http://patchwork.ozlabs.org/series/1573/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/810145/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/810145/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xmmgj5BXfz9sRV\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 5 Sep 2017 22:46:57 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752061AbdIEMmP (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 5 Sep 2017 08:42:15 -0400", "from foss.arm.com ([217.140.101.70]:39516 \"EHLO foss.arm.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751149AbdIEMmC (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tTue, 5 Sep 2017 08:42:02 -0400", "from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249])\n\tby usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BF2141684;\n\tTue, 5 Sep 2017 05:42:01 -0700 (PDT)", "from gby.kfn.arm.com (unknown [10.45.48.140])\n\tby usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id\n\t2ABBE3F3E1; Tue, 5 Sep 2017 05:41:51 -0700 (PDT)" ], "From": "Gilad Ben-Yossef <gilad@benyossef.com>", "To": "Herbert Xu <herbert@gondor.apana.org.au>,\n\t\"David S. Miller\" <davem@davemloft.net>,\n\tJonathan Corbet <corbet@lwn.net>, David Howells <dhowells@redhat.com>,\n\tTom Lendacky <thomas.lendacky@amd.com>, Gary Hook <gary.hook@amd.com>,\n\tBoris Brezillon <boris.brezillon@free-electrons.com>,\n\tArnaud Ebalard <arno@natisbad.org>,\n\tMatthias Brugger <matthias.bgg@gmail.com>,\n\tAlasdair Kergon <agk@redhat.com>,\n\tMike Snitzer <snitzer@redhat.com>, dm-devel@redhat.com,\n\tShaohua Li <shli@kernel.org>, Steve French <sfrench@samba.org>,\n\t\"Theodore Y. Ts'o\" <tytso@mit.edu>, Jaegeuk Kim <jaegeuk@kernel.org>,\n\tSteffen Klassert <steffen.klassert@secunet.com>,\n\tAlexey Kuznetsov <kuznet@ms2.inr.ac.ru>,\n\tHideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>,\n\tMimi Zohar <zohar@linux.vnet.ibm.com>,\n\tDmitry Kasatkin <dmitry.kasatkin@gmail.com>,\n\tJames Morris <james.l.morris@oracle.com>,\n\t\"Serge E. Hallyn\" <serge@hallyn.com>, linux-crypto@vger.kernel.org,\n\tlinux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,\n\tkeyrings@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n\tlinux-mediatek@lists.infradead.org, linux-raid@vger.kernel.org,\n\tlinux-cifs@vger.kernel.org, samba-technical@lists.samba.org,\n\tlinux-fscrypt@vger.kernel.org, netdev@vger.kernel.org,\n\tlinux-ima-devel@lists.sourceforge.net,\n\tlinux-ima-user@lists.sourceforge.net,\n\tlinux-security-module@vger.kernel.org", "Cc": "Ofir Drang <ofir.drang@arm.com>", "Subject": "[PATCH v8 11/20] crypto: move testmgr to generic async completion", "Date": "Tue, 5 Sep 2017 15:38:50 +0300", "Message-Id": "<1504615144-29770-12-git-send-email-gilad@benyossef.com>", "X-Mailer": "git-send-email 2.1.4", "In-Reply-To": "<1504615144-29770-1-git-send-email-gilad@benyossef.com>", "References": "<1504615144-29770-1-git-send-email-gilad@benyossef.com>", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "testmgr is starting async. crypto ops and waiting for them to complete.\nMove it over to generic code doing the same.\n\nThis also provides a test of the generic crypto async. wait code.\n\nSigned-off-by: Gilad Ben-Yossef <gilad@benyossef.com>\n---\n crypto/testmgr.c | 204 ++++++++++++++++++-------------------------------------\n 1 file changed, 66 insertions(+), 138 deletions(-)", "diff": "diff --git a/crypto/testmgr.c b/crypto/testmgr.c\nindex 8a124d3..af968f4 100644\n--- a/crypto/testmgr.c\n+++ b/crypto/testmgr.c\n@@ -76,11 +76,6 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask)\n #define ENCRYPT 1\n #define DECRYPT 0\n \n-struct tcrypt_result {\n-\tstruct completion completion;\n-\tint err;\n-};\n-\n struct aead_test_suite {\n \tstruct {\n \t\tconst struct aead_testvec *vecs;\n@@ -155,17 +150,6 @@ static void hexdump(unsigned char *buf, unsigned int len)\n \t\t\tbuf, len, false);\n }\n \n-static void tcrypt_complete(struct crypto_async_request *req, int err)\n-{\n-\tstruct tcrypt_result *res = req->data;\n-\n-\tif (err == -EINPROGRESS)\n-\t\treturn;\n-\n-\tres->err = err;\n-\tcomplete(&res->completion);\n-}\n-\n static int testmgr_alloc_buf(char *buf[XBUFSIZE])\n {\n \tint i;\n@@ -193,20 +177,10 @@ static void testmgr_free_buf(char *buf[XBUFSIZE])\n \t\tfree_page((unsigned long)buf[i]);\n }\n \n-static int wait_async_op(struct tcrypt_result *tr, int ret)\n-{\n-\tif (ret == -EINPROGRESS || ret == -EBUSY) {\n-\t\twait_for_completion(&tr->completion);\n-\t\treinit_completion(&tr->completion);\n-\t\tret = tr->err;\n-\t}\n-\treturn ret;\n-}\n-\n static int ahash_partial_update(struct ahash_request **preq,\n \tstruct crypto_ahash *tfm, const struct hash_testvec *template,\n \tvoid *hash_buff, int k, int temp, struct scatterlist *sg,\n-\tconst char *algo, char *result, struct tcrypt_result *tresult)\n+\tconst char *algo, char *result, struct crypto_wait *wait)\n {\n \tchar *state;\n \tstruct ahash_request *req;\n@@ -236,7 +210,7 @@ static int ahash_partial_update(struct ahash_request **preq,\n \t}\n \tahash_request_set_callback(req,\n \t\tCRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\ttcrypt_complete, tresult);\n+\t\tcrypto_req_done, wait);\n \n \tmemcpy(hash_buff, template->plaintext + temp,\n \t\ttemplate->tap[k]);\n@@ -247,7 +221,7 @@ static int ahash_partial_update(struct ahash_request **preq,\n \t\tpr_err(\"alg: hash: Failed to import() for %s\\n\", algo);\n \t\tgoto out;\n \t}\n-\tret = wait_async_op(tresult, crypto_ahash_update(req));\n+\tret = crypto_wait_req(crypto_ahash_update(req), wait);\n \tif (ret)\n \t\tgoto out;\n \t*preq = req;\n@@ -272,7 +246,7 @@ static int __test_hash(struct crypto_ahash *tfm,\n \tchar *result;\n \tchar *key;\n \tstruct ahash_request *req;\n-\tstruct tcrypt_result tresult;\n+\tstruct crypto_wait wait;\n \tvoid *hash_buff;\n \tchar *xbuf[XBUFSIZE];\n \tint ret = -ENOMEM;\n@@ -286,7 +260,7 @@ static int __test_hash(struct crypto_ahash *tfm,\n \tif (testmgr_alloc_buf(xbuf))\n \t\tgoto out_nobuf;\n \n-\tinit_completion(&tresult.completion);\n+\tcrypto_init_wait(&wait);\n \n \treq = ahash_request_alloc(tfm, GFP_KERNEL);\n \tif (!req) {\n@@ -295,7 +269,7 @@ static int __test_hash(struct crypto_ahash *tfm,\n \t\tgoto out_noreq;\n \t}\n \tahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t tcrypt_complete, &tresult);\n+\t\t\t\t crypto_req_done, &wait);\n \n \tj = 0;\n \tfor (i = 0; i < tcount; i++) {\n@@ -335,26 +309,26 @@ static int __test_hash(struct crypto_ahash *tfm,\n \n \t\tahash_request_set_crypt(req, sg, result, template[i].psize);\n \t\tif (use_digest) {\n-\t\t\tret = wait_async_op(&tresult, crypto_ahash_digest(req));\n+\t\t\tret = crypto_wait_req(crypto_ahash_digest(req), &wait);\n \t\t\tif (ret) {\n \t\t\t\tpr_err(\"alg: hash: digest failed on test %d \"\n \t\t\t\t \"for %s: ret=%d\\n\", j, algo, -ret);\n \t\t\t\tgoto out;\n \t\t\t}\n \t\t} else {\n-\t\t\tret = wait_async_op(&tresult, crypto_ahash_init(req));\n+\t\t\tret = crypto_wait_req(crypto_ahash_init(req), &wait);\n \t\t\tif (ret) {\n \t\t\t\tpr_err(\"alg: hash: init failed on test %d \"\n \t\t\t\t \"for %s: ret=%d\\n\", j, algo, -ret);\n \t\t\t\tgoto out;\n \t\t\t}\n-\t\t\tret = wait_async_op(&tresult, crypto_ahash_update(req));\n+\t\t\tret = crypto_wait_req(crypto_ahash_update(req), &wait);\n \t\t\tif (ret) {\n \t\t\t\tpr_err(\"alg: hash: update failed on test %d \"\n \t\t\t\t \"for %s: ret=%d\\n\", j, algo, -ret);\n \t\t\t\tgoto out;\n \t\t\t}\n-\t\t\tret = wait_async_op(&tresult, crypto_ahash_final(req));\n+\t\t\tret = crypto_wait_req(crypto_ahash_final(req), &wait);\n \t\t\tif (ret) {\n \t\t\t\tpr_err(\"alg: hash: final failed on test %d \"\n \t\t\t\t \"for %s: ret=%d\\n\", j, algo, -ret);\n@@ -420,22 +394,10 @@ static int __test_hash(struct crypto_ahash *tfm,\n \t\t}\n \n \t\tahash_request_set_crypt(req, sg, result, template[i].psize);\n-\t\tret = crypto_ahash_digest(req);\n-\t\tswitch (ret) {\n-\t\tcase 0:\n-\t\t\tbreak;\n-\t\tcase -EINPROGRESS:\n-\t\tcase -EBUSY:\n-\t\t\twait_for_completion(&tresult.completion);\n-\t\t\treinit_completion(&tresult.completion);\n-\t\t\tret = tresult.err;\n-\t\t\tif (!ret)\n-\t\t\t\tbreak;\n-\t\t\t/* fall through */\n-\t\tdefault:\n-\t\t\tprintk(KERN_ERR \"alg: hash: digest failed \"\n-\t\t\t \"on chunking test %d for %s: \"\n-\t\t\t \"ret=%d\\n\", j, algo, -ret);\n+\t\tret = crypto_wait_req(crypto_ahash_digest(req), &wait);\n+\t\tif (ret) {\n+\t\t\tpr_err(\"alg: hash: digest failed on chunking test %d for %s: ret=%d\\n\",\n+\t\t\t j, algo, -ret);\n \t\t\tgoto out;\n \t\t}\n \n@@ -486,13 +448,13 @@ static int __test_hash(struct crypto_ahash *tfm,\n \t\t}\n \n \t\tahash_request_set_crypt(req, sg, result, template[i].tap[0]);\n-\t\tret = wait_async_op(&tresult, crypto_ahash_init(req));\n+\t\tret = crypto_wait_req(crypto_ahash_init(req), &wait);\n \t\tif (ret) {\n \t\t\tpr_err(\"alg: hash: init failed on test %d for %s: ret=%d\\n\",\n \t\t\t\tj, algo, -ret);\n \t\t\tgoto out;\n \t\t}\n-\t\tret = wait_async_op(&tresult, crypto_ahash_update(req));\n+\t\tret = crypto_wait_req(crypto_ahash_update(req), &wait);\n \t\tif (ret) {\n \t\t\tpr_err(\"alg: hash: update failed on test %d for %s: ret=%d\\n\",\n \t\t\t\tj, algo, -ret);\n@@ -503,7 +465,7 @@ static int __test_hash(struct crypto_ahash *tfm,\n \t\tfor (k = 1; k < template[i].np; k++) {\n \t\t\tret = ahash_partial_update(&req, tfm, &template[i],\n \t\t\t\thash_buff, k, temp, &sg[0], algo, result,\n-\t\t\t\t&tresult);\n+\t\t\t\t&wait);\n \t\t\tif (ret) {\n \t\t\t\tpr_err(\"alg: hash: partial update failed on test %d for %s: ret=%d\\n\",\n \t\t\t\t\tj, algo, -ret);\n@@ -511,7 +473,7 @@ static int __test_hash(struct crypto_ahash *tfm,\n \t\t\t}\n \t\t\ttemp += template[i].tap[k];\n \t\t}\n-\t\tret = wait_async_op(&tresult, crypto_ahash_final(req));\n+\t\tret = crypto_wait_req(crypto_ahash_final(req), &wait);\n \t\tif (ret) {\n \t\t\tpr_err(\"alg: hash: final failed on test %d for %s: ret=%d\\n\",\n \t\t\t\tj, algo, -ret);\n@@ -580,7 +542,7 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \tstruct scatterlist *sg;\n \tstruct scatterlist *sgout;\n \tconst char *e, *d;\n-\tstruct tcrypt_result result;\n+\tstruct crypto_wait wait;\n \tunsigned int authsize, iv_len;\n \tvoid *input;\n \tvoid *output;\n@@ -619,7 +581,7 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \telse\n \t\te = \"decryption\";\n \n-\tinit_completion(&result.completion);\n+\tcrypto_init_wait(&wait);\n \n \treq = aead_request_alloc(tfm, GFP_KERNEL);\n \tif (!req) {\n@@ -629,7 +591,7 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \t}\n \n \taead_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t tcrypt_complete, &result);\n+\t\t\t\t crypto_req_done, &wait);\n \n \tiv_len = crypto_aead_ivsize(tfm);\n \n@@ -709,7 +671,8 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \n \t\taead_request_set_ad(req, template[i].alen);\n \n-\t\tret = enc ? crypto_aead_encrypt(req) : crypto_aead_decrypt(req);\n+\t\tret = crypto_wait_req(enc ? crypto_aead_encrypt(req)\n+\t\t\t\t : crypto_aead_decrypt(req), &wait);\n \n \t\tswitch (ret) {\n \t\tcase 0:\n@@ -722,13 +685,6 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \t\t\t\tgoto out;\n \t\t\t}\n \t\t\tbreak;\n-\t\tcase -EINPROGRESS:\n-\t\tcase -EBUSY:\n-\t\t\twait_for_completion(&result.completion);\n-\t\t\treinit_completion(&result.completion);\n-\t\t\tret = result.err;\n-\t\t\tif (!ret)\n-\t\t\t\tbreak;\n \t\tcase -EBADMSG:\n \t\t\tif (template[i].novrfy)\n \t\t\t\t/* verification failure was expected */\n@@ -866,7 +822,8 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \n \t\taead_request_set_ad(req, template[i].alen);\n \n-\t\tret = enc ? crypto_aead_encrypt(req) : crypto_aead_decrypt(req);\n+\t\tret = crypto_wait_req(enc ? crypto_aead_encrypt(req)\n+\t\t\t\t : crypto_aead_decrypt(req), &wait);\n \n \t\tswitch (ret) {\n \t\tcase 0:\n@@ -879,13 +836,6 @@ static int __test_aead(struct crypto_aead *tfm, int enc,\n \t\t\t\tgoto out;\n \t\t\t}\n \t\t\tbreak;\n-\t\tcase -EINPROGRESS:\n-\t\tcase -EBUSY:\n-\t\t\twait_for_completion(&result.completion);\n-\t\t\treinit_completion(&result.completion);\n-\t\t\tret = result.err;\n-\t\t\tif (!ret)\n-\t\t\t\tbreak;\n \t\tcase -EBADMSG:\n \t\t\tif (template[i].novrfy)\n \t\t\t\t/* verification failure was expected */\n@@ -1083,7 +1033,7 @@ static int __test_skcipher(struct crypto_skcipher *tfm, int enc,\n \tstruct scatterlist sg[8];\n \tstruct scatterlist sgout[8];\n \tconst char *e, *d;\n-\tstruct tcrypt_result result;\n+\tstruct crypto_wait wait;\n \tvoid *data;\n \tchar iv[MAX_IVLEN];\n \tchar *xbuf[XBUFSIZE];\n@@ -1107,7 +1057,7 @@ static int __test_skcipher(struct crypto_skcipher *tfm, int enc,\n \telse\n \t\te = \"decryption\";\n \n-\tinit_completion(&result.completion);\n+\tcrypto_init_wait(&wait);\n \n \treq = skcipher_request_alloc(tfm, GFP_KERNEL);\n \tif (!req) {\n@@ -1117,7 +1067,7 @@ static int __test_skcipher(struct crypto_skcipher *tfm, int enc,\n \t}\n \n \tskcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t tcrypt_complete, &result);\n+\t\t\t\t crypto_req_done, &wait);\n \n \tj = 0;\n \tfor (i = 0; i < tcount; i++) {\n@@ -1164,21 +1114,10 @@ static int __test_skcipher(struct crypto_skcipher *tfm, int enc,\n \n \t\tskcipher_request_set_crypt(req, sg, (diff_dst) ? sgout : sg,\n \t\t\t\t\t template[i].ilen, iv);\n-\t\tret = enc ? crypto_skcipher_encrypt(req) :\n-\t\t\t crypto_skcipher_decrypt(req);\n+\t\tret = crypto_wait_req(enc ? crypto_skcipher_encrypt(req) :\n+\t\t\t\t crypto_skcipher_decrypt(req), &wait);\n \n-\t\tswitch (ret) {\n-\t\tcase 0:\n-\t\t\tbreak;\n-\t\tcase -EINPROGRESS:\n-\t\tcase -EBUSY:\n-\t\t\twait_for_completion(&result.completion);\n-\t\t\treinit_completion(&result.completion);\n-\t\t\tret = result.err;\n-\t\t\tif (!ret)\n-\t\t\t\tbreak;\n-\t\t\t/* fall through */\n-\t\tdefault:\n+\t\tif (ret) {\n \t\t\tpr_err(\"alg: skcipher%s: %s failed on test %d for %s: ret=%d\\n\",\n \t\t\t d, e, j, algo, -ret);\n \t\t\tgoto out;\n@@ -1272,21 +1211,10 @@ static int __test_skcipher(struct crypto_skcipher *tfm, int enc,\n \t\tskcipher_request_set_crypt(req, sg, (diff_dst) ? sgout : sg,\n \t\t\t\t\t template[i].ilen, iv);\n \n-\t\tret = enc ? crypto_skcipher_encrypt(req) :\n-\t\t\t crypto_skcipher_decrypt(req);\n+\t\tret = crypto_wait_req(enc ? crypto_skcipher_encrypt(req) :\n+\t\t\t\t crypto_skcipher_decrypt(req), &wait);\n \n-\t\tswitch (ret) {\n-\t\tcase 0:\n-\t\t\tbreak;\n-\t\tcase -EINPROGRESS:\n-\t\tcase -EBUSY:\n-\t\t\twait_for_completion(&result.completion);\n-\t\t\treinit_completion(&result.completion);\n-\t\t\tret = result.err;\n-\t\t\tif (!ret)\n-\t\t\t\tbreak;\n-\t\t\t/* fall through */\n-\t\tdefault:\n+\t\tif (ret) {\n \t\t\tpr_err(\"alg: skcipher%s: %s failed on chunk test %d for %s: ret=%d\\n\",\n \t\t\t d, e, j, algo, -ret);\n \t\t\tgoto out;\n@@ -1462,7 +1390,7 @@ static int test_acomp(struct crypto_acomp *tfm,\n \tint ret;\n \tstruct scatterlist src, dst;\n \tstruct acomp_req *req;\n-\tstruct tcrypt_result result;\n+\tstruct crypto_wait wait;\n \n \toutput = kmalloc(COMP_BUF_SIZE, GFP_KERNEL);\n \tif (!output)\n@@ -1486,7 +1414,7 @@ static int test_acomp(struct crypto_acomp *tfm,\n \t\t}\n \n \t\tmemset(output, 0, dlen);\n-\t\tinit_completion(&result.completion);\n+\t\tcrypto_init_wait(&wait);\n \t\tsg_init_one(&src, input_vec, ilen);\n \t\tsg_init_one(&dst, output, dlen);\n \n@@ -1501,9 +1429,9 @@ static int test_acomp(struct crypto_acomp *tfm,\n \n \t\tacomp_request_set_params(req, &src, &dst, ilen, dlen);\n \t\tacomp_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t\t tcrypt_complete, &result);\n+\t\t\t\t\t crypto_req_done, &wait);\n \n-\t\tret = wait_async_op(&result, crypto_acomp_compress(req));\n+\t\tret = crypto_wait_req(crypto_acomp_compress(req), &wait);\n \t\tif (ret) {\n \t\t\tpr_err(\"alg: acomp: compression failed on test %d for %s: ret=%d\\n\",\n \t\t\t i + 1, algo, -ret);\n@@ -1516,10 +1444,10 @@ static int test_acomp(struct crypto_acomp *tfm,\n \t\tdlen = COMP_BUF_SIZE;\n \t\tsg_init_one(&src, output, ilen);\n \t\tsg_init_one(&dst, decomp_out, dlen);\n-\t\tinit_completion(&result.completion);\n+\t\tcrypto_init_wait(&wait);\n \t\tacomp_request_set_params(req, &src, &dst, ilen, dlen);\n \n-\t\tret = wait_async_op(&result, crypto_acomp_decompress(req));\n+\t\tret = crypto_wait_req(crypto_acomp_decompress(req), &wait);\n \t\tif (ret) {\n \t\t\tpr_err(\"alg: acomp: compression failed on test %d for %s: ret=%d\\n\",\n \t\t\t i + 1, algo, -ret);\n@@ -1563,7 +1491,7 @@ static int test_acomp(struct crypto_acomp *tfm,\n \t\t}\n \n \t\tmemset(output, 0, dlen);\n-\t\tinit_completion(&result.completion);\n+\t\tcrypto_init_wait(&wait);\n \t\tsg_init_one(&src, input_vec, ilen);\n \t\tsg_init_one(&dst, output, dlen);\n \n@@ -1578,9 +1506,9 @@ static int test_acomp(struct crypto_acomp *tfm,\n \n \t\tacomp_request_set_params(req, &src, &dst, ilen, dlen);\n \t\tacomp_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t\t tcrypt_complete, &result);\n+\t\t\t\t\t crypto_req_done, &wait);\n \n-\t\tret = wait_async_op(&result, crypto_acomp_decompress(req));\n+\t\tret = crypto_wait_req(crypto_acomp_decompress(req), &wait);\n \t\tif (ret) {\n \t\t\tpr_err(\"alg: acomp: decompression failed on test %d for %s: ret=%d\\n\",\n \t\t\t i + 1, algo, -ret);\n@@ -2000,7 +1928,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec,\n \tvoid *a_public = NULL;\n \tvoid *a_ss = NULL;\n \tvoid *shared_secret = NULL;\n-\tstruct tcrypt_result result;\n+\tstruct crypto_wait wait;\n \tunsigned int out_len_max;\n \tint err = -ENOMEM;\n \tstruct scatterlist src, dst;\n@@ -2009,7 +1937,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec,\n \tif (!req)\n \t\treturn err;\n \n-\tinit_completion(&result.completion);\n+\tcrypto_init_wait(&wait);\n \n \terr = crypto_kpp_set_secret(tfm, vec->secret, vec->secret_size);\n \tif (err < 0)\n@@ -2027,10 +1955,10 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec,\n \tsg_init_one(&dst, output_buf, out_len_max);\n \tkpp_request_set_output(req, &dst, out_len_max);\n \tkpp_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t tcrypt_complete, &result);\n+\t\t\t\t crypto_req_done, &wait);\n \n \t/* Compute party A's public key */\n-\terr = wait_async_op(&result, crypto_kpp_generate_public_key(req));\n+\terr = crypto_wait_req(crypto_kpp_generate_public_key(req), &wait);\n \tif (err) {\n \t\tpr_err(\"alg: %s: Party A: generate public key test failed. err %d\\n\",\n \t\t alg, err);\n@@ -2069,8 +1997,8 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec,\n \tkpp_request_set_input(req, &src, vec->b_public_size);\n \tkpp_request_set_output(req, &dst, out_len_max);\n \tkpp_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t tcrypt_complete, &result);\n-\terr = wait_async_op(&result, crypto_kpp_compute_shared_secret(req));\n+\t\t\t\t crypto_req_done, &wait);\n+\terr = crypto_wait_req(crypto_kpp_compute_shared_secret(req), &wait);\n \tif (err) {\n \t\tpr_err(\"alg: %s: Party A: compute shared secret test failed. err %d\\n\",\n \t\t alg, err);\n@@ -2100,9 +2028,9 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec,\n \t\tkpp_request_set_input(req, &src, vec->expected_a_public_size);\n \t\tkpp_request_set_output(req, &dst, out_len_max);\n \t\tkpp_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t\t tcrypt_complete, &result);\n-\t\terr = wait_async_op(&result,\n-\t\t\t\t crypto_kpp_compute_shared_secret(req));\n+\t\t\t\t\t crypto_req_done, &wait);\n+\t\terr = crypto_wait_req(crypto_kpp_compute_shared_secret(req),\n+\t\t\t\t &wait);\n \t\tif (err) {\n \t\t\tpr_err(\"alg: %s: Party B: compute shared secret failed. err %d\\n\",\n \t\t\t alg, err);\n@@ -2179,7 +2107,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm,\n \tstruct akcipher_request *req;\n \tvoid *outbuf_enc = NULL;\n \tvoid *outbuf_dec = NULL;\n-\tstruct tcrypt_result result;\n+\tstruct crypto_wait wait;\n \tunsigned int out_len_max, out_len = 0;\n \tint err = -ENOMEM;\n \tstruct scatterlist src, dst, src_tab[2];\n@@ -2191,7 +2119,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm,\n \tif (!req)\n \t\tgoto free_xbuf;\n \n-\tinit_completion(&result.completion);\n+\tcrypto_init_wait(&wait);\n \n \tif (vecs->public_key_vec)\n \t\terr = crypto_akcipher_set_pub_key(tfm, vecs->key,\n@@ -2220,13 +2148,13 @@ static int test_akcipher_one(struct crypto_akcipher *tfm,\n \takcipher_request_set_crypt(req, src_tab, &dst, vecs->m_size,\n \t\t\t\t out_len_max);\n \takcipher_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,\n-\t\t\t\t tcrypt_complete, &result);\n+\t\t\t\t crypto_req_done, &wait);\n \n-\terr = wait_async_op(&result, vecs->siggen_sigver_test ?\n-\t\t\t\t /* Run asymmetric signature generation */\n-\t\t\t\t crypto_akcipher_sign(req) :\n-\t\t\t\t /* Run asymmetric encrypt */\n-\t\t\t\t crypto_akcipher_encrypt(req));\n+\terr = crypto_wait_req(vecs->siggen_sigver_test ?\n+\t\t\t /* Run asymmetric signature generation */\n+\t\t\t crypto_akcipher_sign(req) :\n+\t\t\t /* Run asymmetric encrypt */\n+\t\t\t crypto_akcipher_encrypt(req), &wait);\n \tif (err) {\n \t\tpr_err(\"alg: akcipher: encrypt test failed. err %d\\n\", err);\n \t\tgoto free_all;\n@@ -2261,14 +2189,14 @@ static int test_akcipher_one(struct crypto_akcipher *tfm,\n \n \tsg_init_one(&src, xbuf[0], vecs->c_size);\n \tsg_init_one(&dst, outbuf_dec, out_len_max);\n-\tinit_completion(&result.completion);\n+\tcrypto_init_wait(&wait);\n \takcipher_request_set_crypt(req, &src, &dst, vecs->c_size, out_len_max);\n \n-\terr = wait_async_op(&result, vecs->siggen_sigver_test ?\n-\t\t\t\t /* Run asymmetric signature verification */\n-\t\t\t\t crypto_akcipher_verify(req) :\n-\t\t\t\t /* Run asymmetric decrypt */\n-\t\t\t\t crypto_akcipher_decrypt(req));\n+\terr = crypto_wait_req(vecs->siggen_sigver_test ?\n+\t\t\t /* Run asymmetric signature verification */\n+\t\t\t crypto_akcipher_verify(req) :\n+\t\t\t /* Run asymmetric decrypt */\n+\t\t\t crypto_akcipher_decrypt(req), &wait);\n \tif (err) {\n \t\tpr_err(\"alg: akcipher: decrypt test failed. err %d\\n\", err);\n \t\tgoto free_all;\n", "prefixes": [ "v8", "11/20" ] }