From patchwork Sat May 6 12:59:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gilad Ben-Yossef X-Patchwork-Id: 98753 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp564272qge; Sat, 6 May 2017 06:00:36 -0700 (PDT) X-Received: by 10.99.110.75 with SMTP id j72mr8693698pgc.84.1494075635937; Sat, 06 May 2017 06:00:35 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f34si7857377ple.282.2017.05.06.06.00.35; Sat, 06 May 2017 06:00:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751196AbdEFNAQ (ORCPT + 1 other); Sat, 6 May 2017 09:00:16 -0400 Received: from foss.arm.com ([217.140.101.70]:59022 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751400AbdEFNAP (ORCPT ); Sat, 6 May 2017 09:00:15 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D010C344; Sat, 6 May 2017 06:00:14 -0700 (PDT) Received: from localhost.localdomain (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 59EE53F41F; Sat, 6 May 2017 06:00:08 -0700 (PDT) From: Gilad Ben-Yossef To: Herbert Xu , "David S. Miller" , Jonathan Corbet , David Howells , Alasdair Kergon , Mike Snitzer , dm-devel@redhat.com, Shaohua Li , Steve French , "Theodore Y. Ts'o" , Jaegeuk Kim , Mimi Zohar , Dmitry Kasatkin , James Morris , "Serge E. Hallyn" Cc: Ofir Drang , Gilad Ben-Yossef , linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, keyrings@vger.kernel.org, linux-raid@vger.kernel.org, linux-cifs@vger.kernel.org, samba-technical@lists.samba.org, linux-fsdevel@vger.kernel.org, linux-ima-devel@lists.sourceforge.net, linux-ima-user@lists.sourceforge.net, linux-security-module@vger.kernel.org Subject: [RFC 00/10] introduce crypto wait for async op function Date: Sat, 6 May 2017 15:59:49 +0300 Message-Id: <1494075602-5061-1-git-send-email-gilad@benyossef.com> X-Mailer: git-send-email 2.1.4 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Many users of kernel async. crypto services have a pattern of starting an async. crypto op and than using a completion to wait for it to end, resulting of the same code repeating itself in multiple places, sometime with errors. This patch aims to introduce a generic "wait for async. crypto op to complete" functions and move all the users I could find to use it. This gets rid of almost 300 lines of code and fixes at least one bug (hopefully without adding new ones). In some cases (indicated in the specific patch description) the move to the generic function changes the semantics slightly (such as dropping interruptible when waiting). I am especially interested in feedback whether people think this is OK or I should an interruptible variant. The patch set was boot tested on x86_64 and arm64 which at the very least tests the crypto users via testmgr but I am less confident regarding some of the other users and would love feedback. Signed-off-by: Gilad Ben-Yossef Gilad Ben-Yossef (10): crypto: factor async completion for general use crypto: move pub key to generic async completion crypto: move drbg to generic async completion crypto: move gcm to generic async completion crypto: move testmgr to generic async completion dm: move dm-verity to generic async completion fscrypt: move to generic async completion cifs: move to generic async completion ima: move to generic async completion crypto: adapt api sample to use async. op wait Documentation/crypto/api-samples.rst | 52 ++-------- crypto/af_alg.c | 27 ----- crypto/algif_aead.c | 14 +-- crypto/algif_hash.c | 30 +++--- crypto/algif_skcipher.c | 10 +- crypto/api.c | 28 ++++++ crypto/asymmetric_keys/public_key.c | 28 +----- crypto/drbg.c | 35 ++----- crypto/gcm.c | 34 ++----- crypto/testmgr.c | 184 +++++++++++------------------------ drivers/md/dm-verity-target.c | 81 ++++----------- drivers/md/dm-verity.h | 5 - fs/cifs/smb2ops.c | 30 +----- fs/crypto/crypto.c | 28 +----- fs/crypto/fname.c | 36 ++----- fs/crypto/fscrypt_private.h | 10 -- fs/crypto/keyinfo.c | 21 +--- include/crypto/drbg.h | 3 +- include/crypto/if_alg.h | 14 --- include/linux/crypto.h | 28 ++++++ security/integrity/ima/ima_crypto.c | 56 ++++------- 21 files changed, 222 insertions(+), 532 deletions(-) -- 2.1.4 Acked-by: Pavel Shilovsky