Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1719287
| From | Gilad Ben-Yossef <gilad@benyossef.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v7 16/19] crypto: talitos: move to generic async completion |
| Date | 2017-08-24 16:30 +0200 |
| Message-ID | <ui1iW-7Ir-9@gated-at.bofh.it> (permalink) |
| References | <ui19g-7EU-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The talitos driver starts several async crypto ops and waits for their
completions. Move it over to generic code doing the same.
Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
---
drivers/crypto/talitos.c | 38 +++++---------------------------------
1 file changed, 5 insertions(+), 33 deletions(-)
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 79791c6..194a307 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -2037,22 +2037,6 @@ static int ahash_import(struct ahash_request *areq, const void *in)
return 0;
}
-struct keyhash_result {
- struct completion completion;
- int err;
-};
-
-static void keyhash_complete(struct crypto_async_request *req, int err)
-{
- struct keyhash_result *res = req->data;
-
- if (err == -EINPROGRESS)
- return;
-
- res->err = err;
- complete(&res->completion);
-}
-
static int keyhash(struct crypto_ahash *tfm, const u8 *key, unsigned int keylen,
u8 *hash)
{
@@ -2060,10 +2044,10 @@ static int keyhash(struct crypto_ahash *tfm, const u8 *key, unsigned int keylen,
struct scatterlist sg[1];
struct ahash_request *req;
- struct keyhash_result hresult;
+ struct crypto_wait wait;
int ret;
- init_completion(&hresult.completion);
+ crypto_init_wait(&wait);
req = ahash_request_alloc(tfm, GFP_KERNEL);
if (!req)
@@ -2072,25 +2056,13 @@ static int keyhash(struct crypto_ahash *tfm, const u8 *key, unsigned int keylen,
/* Keep tfm keylen == 0 during hash of the long key */
ctx->keylen = 0;
ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- keyhash_complete, &hresult);
+ crypto_req_done, &wait);
sg_init_one(&sg[0], key, keylen);
ahash_request_set_crypt(req, sg, hash, keylen);
- ret = crypto_ahash_digest(req);
- switch (ret) {
- case 0:
- break;
- case -EINPROGRESS:
- case -EBUSY:
- ret = wait_for_completion_interruptible(
- &hresult.completion);
- if (!ret)
- ret = hresult.err;
- break;
- default:
- break;
- }
+ ret = crypto_wait_req(crypto_ahash_digest(req), &wait);
+
ahash_request_free(req);
return ret;
--
2.1.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v7 00/19] simplify crypto wait for async op Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:20 +0200 [PATCH v7 02/19] crypto: ccp: use -EAGAIN for transient busy indication Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:20 +0200 [PATCH v7 17/19] crypto: qce: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 16/19] crypto: talitos: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 12/19] dm: move dm-verity to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 18/19] crypto: mediatek: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 15/19] crypto: tcrypt: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 19/19] crypto: adapt api sample to use async. op wait Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 07/19] crypto: move pub key to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 11/19] fscrypt: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 04/19] crypto: marvell/cesa: remove redundant backlog checks on EBUSY Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 05/19] crypto: introduce crypto wait for async op Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 13/19] cifs: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 10/19] crypto: move testmgr to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 03/19] crypto: remove redundant backlog checks on EBUSY Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 14/19] ima: move to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 06/19] crypto: move algif to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 08/19] crypto: move drbg to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200 [PATCH v7 09/19] crypto: move gcm to generic async completion Gilad Ben-Yossef <gilad@benyossef.com> - 2017-08-24 16:30 +0200
csiph-web