All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilad Ben-Yossef <gilad@benyossef.com>
To: Herbert Xu <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>,
	Jonathan Corbet <corbet@lwn.net>,
	David Howells <dhowells@redhat.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Gary Hook <gary.hook@amd.com>,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	Arnaud Ebalard <arno@natisbad.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Alasdair Kergon <agk@redhat.com>,
	Mike Snitzer <snitzer@redhat.com>,
	dm-devel@redhat.com, Shaohua Li <shli@kernel.org>,
	Steve French <sfrench@samba.org>,
	"Theodore Y. Ts'o" <tytso@mit.edu>,
	Jaegeuk Kim <jaegeuk@kernel.org>,
	Mimi Zohar <zohar@linux.vnet.ibm.com>,
	Dmitry Kasatkin <dmitry.kasatkin@gmail.com>,
	James Morris <james.l.morris@oracle.com>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	linux-crypto@v
Cc: Ofir Drang <ofir.drang@arm.com>
Subject: [PATCH v4 13/19] cifs: move to generic async completion
Date: Tue,  8 Aug 2017 15:03:44 +0300	[thread overview]
Message-ID: <1502193834-11289-14-git-send-email-gilad__43923.3757708736$1502194210$gmane$org@benyossef.com> (raw)
In-Reply-To: <1502193834-11289-1-git-send-email-gilad@benyossef.com>

cifs starts an async. crypto op and waits for their completion.
Move it over to generic code doing the same.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Pavel Shilovsky <pshilov@microsoft.com>
---
 fs/cifs/smb2ops.c | 30 ++++--------------------------
 1 file changed, 4 insertions(+), 26 deletions(-)

diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index cfacf2c..16fb041 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -1878,22 +1878,6 @@ init_sg(struct smb_rqst *rqst, u8 *sign)
 	return sg;
 }
 
-struct cifs_crypt_result {
-	int err;
-	struct completion completion;
-};
-
-static void cifs_crypt_complete(struct crypto_async_request *req, int err)
-{
-	struct cifs_crypt_result *res = req->data;
-
-	if (err == -EINPROGRESS)
-		return;
-
-	res->err = err;
-	complete(&res->completion);
-}
-
 static int
 smb2_get_enc_key(struct TCP_Server_Info *server, __u64 ses_id, int enc, u8 *key)
 {
@@ -1934,12 +1918,10 @@ crypt_message(struct TCP_Server_Info *server, struct smb_rqst *rqst, int enc)
 	struct aead_request *req;
 	char *iv;
 	unsigned int iv_len;
-	struct cifs_crypt_result result = {0, };
+	DECLARE_CRYPTO_WAIT(wait);
 	struct crypto_aead *tfm;
 	unsigned int crypt_len = le32_to_cpu(tr_hdr->OriginalMessageSize);
 
-	init_completion(&result.completion);
-
 	rc = smb2_get_enc_key(server, tr_hdr->SessionId, enc, key);
 	if (rc) {
 		cifs_dbg(VFS, "%s: Could not get %scryption key\n", __func__,
@@ -1999,14 +1981,10 @@ crypt_message(struct TCP_Server_Info *server, struct smb_rqst *rqst, int enc)
 	aead_request_set_ad(req, assoc_data_len);
 
 	aead_request_set_callback(req, CRYPTO_TFM_REQ_MAY_BACKLOG,
-				  cifs_crypt_complete, &result);
+				  crypto_req_done, &wait);
 
-	rc = enc ? crypto_aead_encrypt(req) : crypto_aead_decrypt(req);
-
-	if (rc == -EINPROGRESS || rc == -EBUSY) {
-		wait_for_completion(&result.completion);
-		rc = result.err;
-	}
+	rc = crypto_wait_req(enc ? crypto_aead_encrypt(req)
+				: crypto_aead_decrypt(req), &wait);
 
 	if (!rc && enc)
 		memcpy(&tr_hdr->Signature, sign, SMB2_SIGNATURE_SIZE);
-- 
2.1.4


  parent reply	other threads:[~2017-08-08 12:03 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-08 12:03 [PATCH v4 00/19] simplify crypto wait for async op Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 01/19] crypto: change transient busy return code to -EAGAIN Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 02/19] crypto: ccm: use -EAGAIN for transient busy indication Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 15:24   ` Gary R Hook
     [not found]   ` <1502193834-11289-3-git-send-email-gilad-6S/DczAoZh3WXxRugSxzZg@public.gmane.org>
2017-08-08 15:24     ` Gary R Hook
2017-08-08 15:24       ` Gary R Hook
2017-08-08 15:24   ` Gary R Hook
2017-08-08 15:24     ` Gary R Hook
2017-08-08 15:24     ` Gary R Hook
2017-08-08 15:24     ` Gary R Hook
2017-08-08 15:24     ` Gary R Hook
2017-08-08 15:24     ` Gary R Hook
2017-08-09  5:18     ` Gilad Ben-Yossef
2017-08-09  5:18       ` Gilad Ben-Yossef
2017-08-09  5:18       ` Gilad Ben-Yossef
2017-08-09  5:18       ` Gilad Ben-Yossef
2017-08-09  5:18       ` Gilad Ben-Yossef
2017-08-09  5:18       ` Gilad Ben-Yossef
2017-08-08 15:24   ` Gary R Hook
2017-08-08 15:24   ` Gary R Hook
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 03/19] crypto: remove redundant backlog checks on EBUSY Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 04/19] crypto: marvell/cesa: " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 05/19] crypto: introduce crypto wait for async op Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 06/19] crypto: move algif to generic async completion Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 13:10   ` Stephan Mueller
     [not found]     ` <8585274.Umn6qnzcUd-b2PLbiJbNv8ftSvlWXw0+g@public.gmane.org>
2017-08-08 13:45       ` Gilad Ben-Yossef
2017-08-08 13:45         ` Gilad Ben-Yossef
2017-08-08 13:45         ` Gilad Ben-Yossef
2017-08-08 13:45         ` Gilad Ben-Yossef
2017-08-08 13:45         ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 07/19] crypto: move pub key " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 08/19] crypto: move drbg " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 09/19] crypto: move gcm " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 10/19] crypto: move testmgr " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 11/19] fscrypt: move " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 12/19] dm: move dm-verity " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 13/19] cifs: move " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef [this message]
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 14/19] ima: " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 15/19] crypto: tcrypt: " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 16/19] crypto: talitos: " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 17/19] crypto: qce: " Gilad Ben-Yossef
     [not found] ` <1502193834-11289-1-git-send-email-gilad-6S/DczAoZh3WXxRugSxzZg@public.gmane.org>
2017-08-08 12:03   ` [PATCH v4 01/19] crypto: change transient busy return code to -EAGAIN Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 02/19] crypto: ccm: use -EAGAIN for transient busy indication Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 03/19] crypto: remove redundant backlog checks on EBUSY Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 04/19] crypto: marvell/cesa: " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 05/19] crypto: introduce crypto wait for async op Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 06/19] crypto: move algif to generic async completion Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 07/19] crypto: move pub key " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 08/19] crypto: move drbg " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 09/19] crypto: move gcm " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 10/19] crypto: move testmgr " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 11/19] fscrypt: move " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 12/19] dm: move dm-verity " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 13/19] cifs: move " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 14/19] ima: " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 15/19] crypto: tcrypt: " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 16/19] crypto: talitos: " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 17/19] crypto: qce: " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 18/19] crypto: mediatek: " Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` [PATCH v4 19/19] crypto: adapt api sample to use async. op wait Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 17/19] crypto: qce: move to generic async completion Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 18/19] crypto: mediatek: " Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` [PATCH v4 19/19] crypto: adapt api sample to use async. op wait Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03   ` Gilad Ben-Yossef
2017-08-08 12:03 ` Gilad Ben-Yossef

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='1502193834-11289-14-git-send-email-gilad__43923.3757708736$1502194210$gmane$org@benyossef.com' \
    --to=gilad@benyossef.com \
    --cc=agk@redhat.com \
    --cc=arno@natisbad.org \
    --cc=boris.brezillon@free-electrons.com \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=dmitry.kasatkin@gmail.com \
    --cc=gary.hook@amd.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=jaegeuk@kernel.org \
    --cc=james.l.morris@oracle.com \
    --cc=linux-crypto@v \
    --cc=matthias.bgg@gmail.com \
    --cc=ofir.drang@arm.com \
    --cc=serge@hallyn.com \
    --cc=sfrench@samba.org \
    --cc=shli@kernel.org \
    --cc=snitzer@redhat.com \
    --cc=thomas.lendacky@amd.com \
    --cc=tytso@mit.edu \
    --cc=zohar@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.