Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1719284
| From | Gilad Ben-Yossef <gilad@benyossef.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v7 17/19] crypto: qce: move to generic async completion |
| Date | 2017-08-24 16:30 +0200 |
| Message-ID | <ui1iV-7Ir-1@gated-at.bofh.it> (permalink) |
| References | <ui19g-7EU-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The qce 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/qce/sha.c | 30 ++++--------------------------
1 file changed, 4 insertions(+), 26 deletions(-)
diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c
index 47e114a..53227d7 100644
--- a/drivers/crypto/qce/sha.c
+++ b/drivers/crypto/qce/sha.c
@@ -349,28 +349,12 @@ static int qce_ahash_digest(struct ahash_request *req)
return qce->async_req_enqueue(tmpl->qce, &req->base);
}
-struct qce_ahash_result {
- struct completion completion;
- int error;
-};
-
-static void qce_digest_complete(struct crypto_async_request *req, int error)
-{
- struct qce_ahash_result *result = req->data;
-
- if (error == -EINPROGRESS)
- return;
-
- result->error = error;
- complete(&result->completion);
-}
-
static int qce_ahash_hmac_setkey(struct crypto_ahash *tfm, const u8 *key,
unsigned int keylen)
{
unsigned int digestsize = crypto_ahash_digestsize(tfm);
struct qce_sha_ctx *ctx = crypto_tfm_ctx(&tfm->base);
- struct qce_ahash_result result;
+ struct crypto_wait wait;
struct ahash_request *req;
struct scatterlist sg;
unsigned int blocksize;
@@ -405,9 +389,9 @@ static int qce_ahash_hmac_setkey(struct crypto_ahash *tfm, const u8 *key,
goto err_free_ahash;
}
- init_completion(&result.completion);
+ crypto_init_wait(&wait);
ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
- qce_digest_complete, &result);
+ crypto_req_done, &wait);
crypto_ahash_clear_flags(ahash_tfm, ~0);
buf = kzalloc(keylen + QCE_MAX_ALIGN_SIZE, GFP_KERNEL);
@@ -420,13 +404,7 @@ static int qce_ahash_hmac_setkey(struct crypto_ahash *tfm, const u8 *key,
sg_init_one(&sg, buf, keylen);
ahash_request_set_crypt(req, &sg, ctx->authkey, keylen);
- ret = crypto_ahash_digest(req);
- if (ret == -EINPROGRESS || ret == -EBUSY) {
- ret = wait_for_completion_interruptible(&result.completion);
- if (!ret)
- ret = result.error;
- }
-
+ ret = crypto_wait_req(crypto_ahash_digest(req), &wait);
if (ret)
crypto_ahash_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN);
--
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