Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2511718ybl; Mon, 20 Jan 2020 04:24:37 -0800 (PST) X-Google-Smtp-Source: APXvYqztuENB449vXveOm8aZB4+xxzP1JquxxyGQCiHtCJ1E69I/PYd+s8sMAY/FD33++pdQxZqT X-Received: by 2002:a54:4f8d:: with SMTP id g13mr12236669oiy.43.1579523077367; Mon, 20 Jan 2020 04:24:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579523077; cv=none; d=google.com; s=arc-20160816; b=wAkY11a2oZ4o6ojgssyBfrslHCW2twi2jpU0paZAAhRLyh6xDAouD9TDDLf1jWkxpF EqDcPEawB5EzJsAkFzcQwj63PATQiAWHqatk5VdHlh81WxiJOH4+Zd7tbfFWsxSnn5SV wWpH44iAOcd0/A2169/F4HTpCmCtZAep/jynHAYBEK6MXbfpvu4338h/rDJCfqUUT9dX 9rjVHbSk7FG930zm2DSDJVCgGrP9KTtSjJ1ynmwx1wXwCyBK5JbWnxcyd7nB0H9c+7oN TDS+2yV27/JPM7O7FmGSB4DViBqbQQD8kV+1luuKxnV+BDvXJluBovtutcV+iO3y8jsZ 4wvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=02aP41Ng0JPXFeaUNqMJRaBApWU6u1Ur5hlasFNcQcE=; b=MTI6vuwKyB2LQYAKvbsMJEyJKk58s2vL8+MWXU8b9V8jZpiPrN4Kss2sQr5LTVnSj3 BiF1jM2dpTbbdBu1UYf1rc8PvfEbhFHBk99TJyPUf4eMf28vWwoml1lYwernXscnQGFt Rlx6JO1AnZ7gnZGwTioNPbBHO2PTsIdOsV8ZAyqHQLClqUoLLhYmmoKp3WIvCYonySnQ DHAOg51d1pmmXz+t8Of3Zv+hFx+KwH0pxbHLL3ls+N688KDdtfc2wgFOL1jODd9LakdU F5Tjtzo0UXE3YY9icg35dr2a3yArjaGTeVPy6D8nRzVOUD0BEGQ0NBAwv8Map4O/iSfX 2D0A== ARC-Authentication-Results: i=1; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w2si19218380otq.31.2020.01.20.04.24.17; Mon, 20 Jan 2020 04:24:37 -0800 (PST) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726860AbgATMYQ (ORCPT + 99 others); Mon, 20 Jan 2020 07:24:16 -0500 Received: from inva021.nxp.com ([92.121.34.21]:46812 "EHLO inva021.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726589AbgATMYQ (ORCPT ); Mon, 20 Jan 2020 07:24:16 -0500 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id D94972002F3; Mon, 20 Jan 2020 13:24:13 +0100 (CET) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id CBCCA200275; Mon, 20 Jan 2020 13:24:13 +0100 (CET) Received: from lorenz.ea.freescale.net (lorenz.ea.freescale.net [10.171.71.5]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id 5E94420414; Mon, 20 Jan 2020 13:24:13 +0100 (CET) From: Iuliana Prodan To: Herbert Xu , Horia Geanta , Aymen Sghaier Cc: "David S. Miller" , Silvano Di Ninno , Franck Lenormand , linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx , Iuliana Prodan Subject: [PATCH v4 0/9] crypto: caam - backlogging support Date: Mon, 20 Jan 2020 14:23:59 +0200 Message-Id: <1579523048-21078-1-git-send-email-iuliana.prodan@nxp.com> X-Mailer: git-send-email 2.1.0 X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Integrate crypto_engine framework into CAAM, to make use of the engine queue. Added support for SKCIPHER, HASH, RSA and AEAD algorithms. This is intended to be used for CAAM backlogging support. The requests, with backlog flag (e.g. from dm-crypt) will be listed into crypto-engine queue and processed by CAAM when free. While here, I've also made some refactorization. Patches #1 - #4 include some refactorizations on caamalg, caamhash and caampkc. Patch #5 changes the return code of caam_jr_enqueue function to -EINPROGRESS, in case of success, -ENOSPC in case the CAAM is busy, -EIO if it cannot map the caller's descriptor. Patches #6 - #9 integrate crypto_engine into CAAM, for SKCIPHER/AEAD/RSA/HASH algorithms. --- Changes since V3: - update return on ahash_enqueue_req function from patch #9. Changes since V2: - remove patch ("crypto: caam - refactor caam_jr_enqueue"), that added some structures not needed anymore; - use _done_ callback function directly for skcipher and aead; - handle resource leak in case of transfer request to crypto-engine; - update commit messages. Changes since V1: - remove helper function - akcipher_request_cast; - remove any references to crypto_async_request, use specific request type; - remove bypass crypto-engine queue, in case is empty; - update some commit messages; - remove unrelated changes, like whitespaces; - squash some changes from patch #9 to patch #6; - added Reviewed-by. --- Iuliana Prodan (9): crypto: caam - refactor skcipher/aead/gcm/chachapoly {en,de}crypt functions crypto: caam - refactor ahash_done callbacks crypto: caam - refactor ahash_edesc_alloc crypto: caam - refactor RSA private key _done callbacks crypto: caam - change return code in caam_jr_enqueue function crypto: caam - support crypto_engine framework for SKCIPHER algorithms crypto: caam - add crypto_engine support for AEAD algorithms crypto: caam - add crypto_engine support for RSA algorithms crypto: caam - add crypto_engine support for HASH algorithms drivers/crypto/caam/Kconfig | 1 + drivers/crypto/caam/caamalg.c | 416 ++++++++++++++++++----------------------- drivers/crypto/caam/caamhash.c | 341 ++++++++++++++++----------------- drivers/crypto/caam/caampkc.c | 187 +++++++++++------- drivers/crypto/caam/caampkc.h | 10 + drivers/crypto/caam/caamrng.c | 4 +- drivers/crypto/caam/intern.h | 2 + drivers/crypto/caam/jr.c | 37 +++- drivers/crypto/caam/key_gen.c | 2 +- 9 files changed, 523 insertions(+), 477 deletions(-) -- 2.1.0