{"id":810104,"url":"http://patchwork.ozlabs.org/api/covers/810104/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-cifs-client/cover/1504615144-29770-1-git-send-email-gilad@benyossef.com/","project":{"id":12,"url":"http://patchwork.ozlabs.org/api/projects/12/?format=json","name":"Linux CIFS Client","link_name":"linux-cifs-client","list_id":"linux-cifs.vger.kernel.org","list_email":"linux-cifs@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1504615144-29770-1-git-send-email-gilad@benyossef.com>","list_archive_url":null,"date":"2017-09-05T12:38:39","name":"[v8,00/20] simplify crypto wait for async op","submitter":{"id":11198,"url":"http://patchwork.ozlabs.org/api/people/11198/?format=json","name":"Gilad Ben-Yossef","email":"gilad@benyossef.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-cifs-client/cover/1504615144-29770-1-git-send-email-gilad@benyossef.com/mbox/","series":[{"id":1572,"url":"http://patchwork.ozlabs.org/api/series/1572/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-cifs-client/list/?series=1572","date":"2017-09-05T12:38:39","name":"simplify crypto wait for async op","version":8,"mbox":"http://patchwork.ozlabs.org/series/1572/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/810104/comments/","headers":{"Return-Path":"<linux-cifs-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.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=linux-cifs-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 3xmmW04L8mz9sRV\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 22:39:24 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1750932AbdIEMjW (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 5 Sep 2017 08:39:22 -0400","from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:38840 \"EHLO\n\tfoss.arm.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1750891AbdIEMjV (ORCPT <rfc822;linux-cifs@vger.kernel.org>);\n\tTue, 5 Sep 2017 08:39:21 -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 BBCBC2B;\n\tTue,  5 Sep 2017 05:39:20 -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\tDDDE13F3E1; Tue,  5 Sep 2017 05:39:10 -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 00/20] simplify crypto wait for async op","Date":"Tue,  5 Sep 2017 15:38:39 +0300","Message-Id":"<1504615144-29770-1-git-send-email-gilad@benyossef.com>","X-Mailer":"git-send-email 2.1.4","Sender":"linux-cifs-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-cifs.vger.kernel.org>","X-Mailing-List":"linux-cifs@vger.kernel.org"},"content":"Many users of kernel async. crypto services have a pattern of\nstarting an async. crypto op and than using a completion\nto wait for it to end.\n\nThis patch set simplifies this common use case in two ways:\n\nFirst, by separating the return codes of the case where a\nrequest is queued to a backlog due to the provider being\nbusy (-EBUSY) from the case the request has failed due\nto the provider being busy and backlogging is not enabled\n(-EAGAIN).\n\nNext, this change is than built on to create a generic API\nto wait for a async. crypto operation to complete.\n\nThe end result is a smaller code base and an API that is\neasier to use and more difficult to get wrong.\n\nThe patch set was boot tested on x86_64 and arm64 which\nat the very least tests the crypto users via testmgr and\ntcrypt but I do note that I do not have access to some\nof the HW whose drivers are modified nor do I claim I was\nable to test all of the corner cases.\n\nThe patch set is based upon linux-next release tagged\nnext-20170905.\n\nChanges from v7:\n- Turn -EBUSY to -EAGAIN also in crypto using net\n  code which I missed before, as has been pointed\n  out by Harsh Jain.\n\nChanges from v6:\n- Fix brown paper bag compile error on marvell/cesa\n  code.\n\nChanges from v5:\n- Remove redundant new line as spotted by Jonathan\n  Cameron.\n- Reworded dm-verity change commit message to better\n  clarify potential issue averted by change as\n  pointed out by Mikulas Patocka.\n\nChanges from v4:\n- Rebase on top of latest algif changes from Stephan\n  Mueller.\n- Fix typo in ccp patch title.\n\nChanges from v3:\n- Instead of changing the return code to indicate\n  backlog queueing, change the return code to indicate\n  transient busy state, as suggested by Herbert Xu.\n\nChanges from v2:\n- Patch title changed from \"introduce crypto wait for\n  async op\" to better reflect the current state.\n- Rebase on top of latest linux-next.\n- Add a new return code of -EIOCBQUEUED for backlog\n  queueing, as suggested by Herbert Xu.\n- Transform more users to the new API.\n- Update the drbg change to account for new init as\n  indicated by Stephan Muller.\n\nChanges from v1:\n- Address review comments from Eric Biggers.\n- Separated out bug fixes of existing code and rebase\n  on top of that patch set.\n- Rename 'ecr' to 'wait' in fscrypto code.\n- Split patch introducing the new API from the change\n  moving over the algif code which it originated from\n  to the new API.\n- Inline crypto_wait_req().\n- Some code indentation fixes.\n\nGilad Ben-Yossef (20):\n  crypto: change transient busy return code to -EAGAIN\n  crypto: ccp: use -EAGAIN for transient busy indication\n  net: use -EAGAIN for transient busy indication\n  crypto: remove redundant backlog checks on EBUSY\n  crypto: marvell/cesa: remove redundant backlog checks on EBUSY\n  crypto: introduce crypto wait for async op\n  crypto: move algif to generic async completion\n  crypto: move pub key to generic async completion\n  crypto: move drbg to generic async completion\n  crypto: move gcm to generic async completion\n  crypto: move testmgr to generic async completion\n  fscrypt: move to generic async completion\n  dm: move dm-verity to generic async completion\n  cifs: move to generic async completion\n  ima: move to generic async completion\n  crypto: tcrypt: move to generic async completion\n  crypto: talitos: move to generic async completion\n  crypto: qce: move to generic async completion\n  crypto: mediatek: move to generic async completion\n  crypto: adapt api sample to use async. op wait\n\n Documentation/crypto/api-samples.rst |  52 ++-------\n crypto/af_alg.c                      |  27 -----\n crypto/ahash.c                       |  12 +--\n crypto/algapi.c                      |   6 +-\n crypto/algif_aead.c                  |   8 +-\n crypto/algif_hash.c                  |  50 +++++----\n crypto/algif_skcipher.c              |   9 +-\n crypto/api.c                         |  13 +++\n crypto/asymmetric_keys/public_key.c  |  28 +----\n crypto/cryptd.c                      |   4 +-\n crypto/cts.c                         |   6 +-\n crypto/drbg.c                        |  36 ++-----\n crypto/gcm.c                         |  32 ++----\n crypto/lrw.c                         |   8 +-\n crypto/rsa-pkcs1pad.c                |  16 +--\n crypto/tcrypt.c                      |  84 +++++----------\n crypto/testmgr.c                     | 204 ++++++++++++-----------------------\n crypto/xts.c                         |   8 +-\n drivers/crypto/ccp/ccp-crypto-main.c |   8 +-\n drivers/crypto/ccp/ccp-dev.c         |   7 +-\n drivers/crypto/marvell/cesa.c        |   3 +-\n drivers/crypto/marvell/cesa.h        |   2 +-\n drivers/crypto/mediatek/mtk-aes.c    |  31 +-----\n drivers/crypto/qce/sha.c             |  30 +-----\n drivers/crypto/talitos.c             |  38 +------\n drivers/md/dm-verity-target.c        |  81 ++++----------\n drivers/md/dm-verity.h               |   5 -\n fs/cifs/smb2ops.c                    |  30 +-----\n fs/crypto/crypto.c                   |  28 +----\n fs/crypto/fname.c                    |  36 ++-----\n fs/crypto/fscrypt_private.h          |  10 --\n fs/crypto/keyinfo.c                  |  21 +---\n include/crypto/drbg.h                |   3 +-\n include/crypto/if_alg.h              |  15 +--\n include/linux/crypto.h               |  40 +++++++\n net/ipv4/ah4.c                       |   2 +-\n net/ipv4/esp4.c                      |   2 +-\n net/ipv6/ah6.c                       |   2 +-\n net/ipv6/esp6.c                      |   2 +-\n security/integrity/ima/ima_crypto.c  |  56 +++-------\n 40 files changed, 314 insertions(+), 741 deletions(-)"}