[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b75d3b02-2aba-124c-ccf5-7241775c004c@c-s.fr>
Date: Tue, 17 Oct 2017 12:50:41 +0200
From: Christophe LEROY <christophe.leroy@....fr>
To: Gilad Ben-Yossef <gilad@...yossef.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
"David S. Miller" <davem@...emloft.net>,
Jonathan Corbet <corbet@....net>,
David Howells <dhowells@...hat.com>,
Tom Lendacky <thomas.lendacky@....com>,
Gary Hook <gary.hook@....com>,
Boris Brezillon <boris.brezillon@...e-electrons.com>,
Arnaud Ebalard <arno@...isbad.org>,
Matthias Brugger <matthias.bgg@...il.com>,
Alasdair Kergon <agk@...hat.com>,
Mike Snitzer <snitzer@...hat.com>, dm-devel@...hat.com,
Steve French <sfrench@...ba.org>,
"Theodore Y. Ts'o" <tytso@....edu>,
Jaegeuk Kim <jaegeuk@...nel.org>,
Steffen Klassert <steffen.klassert@...unet.com>,
Alexey Kuznetsov <kuznet@....inr.ac.ru>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>,
Mimi Zohar <zohar@...ux.vnet.ibm.com>,
Dmitry Kasatkin <dmitry.kasatkin@...il.com>,
James Morris <james.l.morris@...cle.com>,
"Serge E. Hallyn" <serge@...lyn.com>
Cc: Ofir Drang <ofir.drang@....com>, linux-crypto@...r.kernel.org,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
keyrings@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org, linux-cifs@...r.kernel.org,
samba-technical@...ts.samba.org, linux-fscrypt@...r.kernel.org,
netdev@...r.kernel.org, linux-ima-devel@...ts.sourceforge.net,
linux-ima-user@...ts.sourceforge.net,
linux-security-module@...r.kernel.org
Subject: Re: [PATCH v9 17/20] crypto: talitos: move to generic async
completion
Le 15/10/2017 à 11:20, Gilad Ben-Yossef a écrit :
> 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@...yossef.com>
Tested-by: Christophe Leroy <christophe.leroy@....fr>
> ---
> 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 5bd8191..9c80e0c 100644
> --- a/drivers/crypto/talitos.c
> +++ b/drivers/crypto/talitos.c
> @@ -2160,22 +2160,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)
> {
> @@ -2183,10 +2167,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)
> @@ -2195,25 +2179,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;
>
Powered by blists - more mailing lists