From patchwork Fri May 27 11:11:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "\(Exiting\) Baolin Wang" X-Patchwork-Id: 68734 Delivered-To: patch@linaro.org Received: by 10.140.92.199 with SMTP id b65csp22509qge; Fri, 27 May 2016 04:12:23 -0700 (PDT) X-Received: by 10.98.67.138 with SMTP id l10mr21618470pfi.59.1464347540562; Fri, 27 May 2016 04:12:20 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z63si7476314pfb.210.2016.05.27.04.12.20; Fri, 27 May 2016 04:12:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753709AbcE0LMN (ORCPT + 30 others); Fri, 27 May 2016 07:12:13 -0400 Received: from mail-pa0-f42.google.com ([209.85.220.42]:36253 "EHLO mail-pa0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753605AbcE0LMK (ORCPT ); Fri, 27 May 2016 07:12:10 -0400 Received: by mail-pa0-f42.google.com with SMTP id eu11so30235925pad.3 for ; Fri, 27 May 2016 04:12:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=JrnmqpJJckOrnPZH2ETGagU+nog3J7+1RSv1kF6Yn5o=; b=Ob/mdwnstNZS6NdQ3S9e3xD++e1A/JXtmMxO4shHjx/4XBwNzcTZfLoyKjI5yRhgfx Dj91kCACjX953UkjNVXNInzFPPkZOYnYcLWzVRrl8+F2krO8vGKK/Ct1kWirEWaic2Yv czx9HfP5Eu6UoFGEptnzvR6Ehy4RtPXHsE8Sg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=JrnmqpJJckOrnPZH2ETGagU+nog3J7+1RSv1kF6Yn5o=; b=ObcBTiBHFBPtbvO0gEmbJJyHanRe5q1xWwEBZIn1xxU0I4zU6IcKqJUwVnLXy4vs27 1b5TN6UUFD2h0cfMUOQuOFawe/EiltdPNasjuzELS5oXaNZJx7jegNrvRJ7xMXEwVtSZ fZIDLQWb9AL4Bud1AbIvP010fBW4JzeAbSiENcAvLsTpPeakT/4SX/W8ywCs8O0AGSwn 7Y/uHCx8up0dwbafPoZKss+5XqZtTCV86OUN/4uR9rY/Xdp3W/mIV3lnLNpZ6v62IYhP E3QmiPgKL0xXJ1diGlH3obtJ/c02GKIIBWFQD34ZBtq4nKlr6kQVJSCTy2fq8hLN6ntR z3MA== X-Gm-Message-State: ALyK8tKNnxL2yCGw4YPlP95yNhvUE/Ae1j8t1CgkoEGvMElAM8T196c7IzxglT4NruowtO5k X-Received: by 10.66.6.35 with SMTP id x3mr21552289pax.135.1464347528989; Fri, 27 May 2016 04:12:08 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([175.111.195.49]) by smtp.gmail.com with ESMTPSA id vi6sm27430788pab.21.2016.05.27.04.12.02 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 27 May 2016 04:12:08 -0700 (PDT) From: Baolin Wang To: axboe@kernel.dk, agk@redhat.com, snitzer@redhat.com, dm-devel@redhat.com, herbert@gondor.apana.org.au, davem@davemloft.net Cc: ebiggers3@gmail.com, js1304@gmail.com, tadeusz.struk@intel.com, smueller@chronox.de, standby24x7@gmail.com, shli@kernel.org, dan.j.williams@intel.com, martin.petersen@oracle.com, sagig@mellanox.com, kent.overstreet@gmail.com, keith.busch@intel.com, tj@kernel.org, ming.lei@canonical.com, broonie@kernel.org, arnd@arndb.de, linux-crypto@vger.kernel.org, linux-block@vger.kernel.org, linux-raid@vger.kernel.org, linux-kernel@vger.kernel.org, baolin.wang@linaro.org Subject: [RFC v2 2/3] crypto: Introduce CRYPTO_ALG_BULK flag Date: Fri, 27 May 2016 19:11:23 +0800 Message-Id: <47e9ddd8c9ea9ad9e29c8cb027d19d8459ea1479.1464346333.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now some cipher hardware engines prefer to handle bulk block rather than one sector (512 bytes) created by dm-crypt, cause these cipher engines can handle the intermediate values (IV) by themselves in one bulk block. This means we can increase the size of the request by merging request rather than always 512 bytes and thus increase the hardware engine processing speed. So introduce 'CRYPTO_ALG_BULK' flag to indicate this cipher can support bulk mode. Signed-off-by: Baolin Wang --- include/crypto/skcipher.h | 7 +++++++ include/linux/crypto.h | 6 ++++++ 2 files changed, 13 insertions(+) -- 1.7.9.5 diff --git a/include/crypto/skcipher.h b/include/crypto/skcipher.h index 0f987f5..d89d29a 100644 --- a/include/crypto/skcipher.h +++ b/include/crypto/skcipher.h @@ -519,5 +519,12 @@ static inline void skcipher_request_set_crypt( req->iv = iv; } +static inline unsigned int skcipher_is_bulk_mode(struct crypto_skcipher *sk_tfm) +{ + struct crypto_tfm *tfm = crypto_skcipher_tfm(sk_tfm); + + return crypto_tfm_alg_bulk(tfm); +} + #endif /* _CRYPTO_SKCIPHER_H */ diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 6e28c89..a315487 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -63,6 +63,7 @@ #define CRYPTO_ALG_DEAD 0x00000020 #define CRYPTO_ALG_DYING 0x00000040 #define CRYPTO_ALG_ASYNC 0x00000080 +#define CRYPTO_ALG_BULK 0x00000100 /* * Set this bit if and only if the algorithm requires another algorithm of @@ -623,6 +624,11 @@ static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm) return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK; } +static inline unsigned int crypto_tfm_alg_bulk(struct crypto_tfm *tfm) +{ + return tfm->__crt_alg->cra_flags & CRYPTO_ALG_BULK; +} + static inline unsigned int crypto_tfm_alg_blocksize(struct crypto_tfm *tfm) { return tfm->__crt_alg->cra_blocksize;