Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6318661ybv; Wed, 12 Feb 2020 09:56:19 -0800 (PST) X-Google-Smtp-Source: APXvYqxgmRWQ1FV0eCLLmEIBh5Mq8XWntmhnWPiMnj3EHYvQxrM9ekJTiQS6Zx31SMfHAtBGcib9 X-Received: by 2002:aca:c68f:: with SMTP id w137mr139843oif.179.1581530179647; Wed, 12 Feb 2020 09:56:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581530179; cv=none; d=google.com; s=arc-20160816; b=aJKoUgoiOZcVLnzcAUFZ/BWfpseSSBml5gVKMRLG7F4Y4Oy9UBogoOU/kYFbNK2g+j EG90ECBzbu5pX8iaF+kNnemfMAlKvGDkwGTlYA7BEMoaNHpoSHKkoBKcmPBJKQTaKvS0 EmfsqWUxohFwOlYmCKDND8sVF+LcJ9mpqiIfEbVK538ReH6zcS81UMUVJEJamdYRiSSx cqZ3aUOrDNUYmvSlAC1WK2G81WlRBOXL5A41e8PSr8sM9Bh/J3MvM9dCyvzUqq04Fe1o fiAXsCPbJfifTmMbsBUkhUzOXmM8xw6YiX69RcgvYmOw+0dI6d+LOjjPbeEFVb/fNXmD kVRQ== 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=x0o6QPAAHPIiDywMzCCwKTFfBfsxpUvoVR+47eTGWbo=; b=Zr4MqmmG3aUPL+GzROFLGmD2VlrqmgNIH/e3z1HjQM0bjqNsmSX5lTWB4Xcpq8GdPy vajs37HKKIHB9puc3Zo9LkuwD9Vu7l5IC4GwZtlwHoDMwMWkrw/lR7dKH+zKkPeLsVo7 9IDUDkIMCHkHF+FDbBLGwYCgI8orIktgnf0iGwoqpl59tXZQueVBRB013b6fwcbfQf76 cTQtf525s4Cb4uVJD7PR8nX41uXyWV85oD3bLkx/wk53Qjhc5XefwOXI2I1/X6sWzqPG AjPVLQ+XvMUp0FawjEG9X5e4xBnIy2lDwe4rgdaH5l55NUjxYKXeXc7TE9Jb2SQbHoFf 2B2w== 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 w9si566000otl.138.2020.02.12.09.55.58; Wed, 12 Feb 2020 09:56:19 -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 S1728673AbgBLRzp (ORCPT + 99 others); Wed, 12 Feb 2020 12:55:45 -0500 Received: from inva021.nxp.com ([92.121.34.21]:45156 "EHLO inva021.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727054AbgBLRzp (ORCPT ); Wed, 12 Feb 2020 12:55:45 -0500 Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id DF45B2076A7; Wed, 12 Feb 2020 18:55:42 +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 D2B20207661; Wed, 12 Feb 2020 18:55:42 +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 574C7204D3; Wed, 12 Feb 2020 18:55:42 +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 v6 0/9] crypto: caam - backlogging support Date: Wed, 12 Feb 2020 19:55:15 +0200 Message-Id: <1581530124-9135-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 V5: - remove unnecessary initializations; - add local variable for share descriptor offset for skcipher and hash; - handle error case for ahash_update_first and ahash_update_no_ctx. Changes since V4: - reorganize {skcipher,aead,rsa}_edesc struct for a proper cacheline sharing. 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 | 413 ++++++++++++++++++----------------------- drivers/crypto/caam/caamhash.c | 338 +++++++++++++++++---------------- drivers/crypto/caam/caampkc.c | 185 +++++++++++------- drivers/crypto/caam/caampkc.h | 10 + drivers/crypto/caam/caamrng.c | 4 +- drivers/crypto/caam/intern.h | 2 + drivers/crypto/caam/jr.c | 36 +++- drivers/crypto/caam/key_gen.c | 2 +- 9 files changed, 512 insertions(+), 479 deletions(-) -- 2.1.0