Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp5810755iob; Tue, 10 May 2022 04:21:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyALXKadOkDx8Sh/ELq5Aslq7p88N/QOlDipBozNLOcS03AdrruajIaWWsFny9H3bXaEQVu X-Received: by 2002:a05:6402:50d2:b0:427:f49e:71a0 with SMTP id h18-20020a05640250d200b00427f49e71a0mr22751794edb.211.1652181706876; Tue, 10 May 2022 04:21:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652181706; cv=none; d=google.com; s=arc-20160816; b=aGcB5GmNsgwd1tZT0G2DXI8Yvjme5KSHBj5gKTlJbQmuzLNIDtZcLup+CEajWnDuqA DI3YrS2eCj+6ragiNTT7evYa2qz/b+I/PJgKSLkOLfBe6LU4f8n08o7H9lYl6cvbPzuY JnyIWCIDDVPD9qUaAiK+fZJK9hrYhJOltbegSUkddOqiDAMhTQKmmtSHvBTICmbNIiXx vuUNjnt9p39a5gm7GeRvOTmvRTcEU8s3g6D11ovPVOMPTHzWQ57FVVPJKKURlq7746ux avmnZO7iNtyFdmAPaLb7Ds92t/rdzmEkC+8Jsso/1U6tfTRPfNm+NRlTqHEL0HascvaZ 6IGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:to:references:subject:date:from; bh=eIpdCb4DbYf6iBxX1IkYlp4MA9g6/wmkDel9BJJkO7Q=; b=bRTRF9r49cQWeSk0cPISf0Pcfaio7+LN8/hojWw+VvUCGO38HVxvCwGQk6viZoJIw/ 2+Y8tcZjmcqEXifSyEQ2RmL5rAvYaFAS/E7sW+8q/t2qVuxLKOwYCx8a47Jn5sr3azO4 FxjkxIxaSO9efEgclyNcumJvn4AX9ILh1lTNxmvsadbcf3rg8osbn6kbmtcadoXJ11Zb zab+FFNCBRbX8Rf/pDTblmcLo5aybARbBnlb6AJvpKvmegIFll45lLyQZxfQSWmchcqL rpRgAfrp7Fty8hCrOekKPNNcoIM0SM/Q2449EiRyhbRm7Jm4RaWL/GmlfwsEYq8PZ1mQ aTCg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n23-20020a170906725700b006f3919a2a13si14995063ejk.683.2022.05.10.04.21.09; Tue, 10 May 2022 04:21:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240710AbiEJLLh (ORCPT + 99 others); Tue, 10 May 2022 07:11:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240782AbiEJLLZ (ORCPT ); Tue, 10 May 2022 07:11:25 -0400 Received: from fornost.hmeau.com (helcar.hmeau.com [216.24.177.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2320106365; Tue, 10 May 2022 04:07:28 -0700 (PDT) Received: from gwarestrin.arnor.me.apana.org.au ([192.168.103.7]) by fornost.hmeau.com with smtp (Exim 4.94.2 #2 (Debian)) id 1noNhu-00BzV4-4N; Tue, 10 May 2022 21:07:11 +1000 Received: by gwarestrin.arnor.me.apana.org.au (sSMTP sendmail emulation); Tue, 10 May 2022 19:07:10 +0800 From: "Herbert Xu" Date: Tue, 10 May 2022 19:07:10 +0800 Subject: [RFC PATCH 2/7] crypto: api - Add crypto_tfm_ctx_dma References: To: Catalin Marinas , Ard Biesheuvel , Will Deacon , Marc Zyngier , Arnd Bergmann , Greg Kroah-Hartman , Andrew Morton , Linus Torvalds , Linux Memory Management List , Linux ARM , Linux Kernel Mailing List , "David S. Miller" , Linux Crypto Mailing List Message-Id: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org This patch adds the helper crypto_tfm_ctx_dma. It's similar to crypto_tfm_ctx_aligned but the alignment is hard-coded to the macro ARCH_DMA_MINALIGN. This patch also moves crypto_tfm_ctx into algapi.h. Signed-off-by: Herbert Xu --- include/crypto/algapi.h | 28 ++++++++++++++++++++++++++-- include/linux/crypto.h | 5 ----- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h index f50c5d1725da5..cdf12e51c53a0 100644 --- a/include/crypto/algapi.h +++ b/include/crypto/algapi.h @@ -189,10 +189,34 @@ static inline void crypto_xor_cpy(u8 *dst, const u8 *src1, const u8 *src2, } } +static inline void *crypto_tfm_ctx(struct crypto_tfm *tfm) +{ + return tfm->__crt_ctx; +} + +static inline void *crypto_tfm_ctx_align(struct crypto_tfm *tfm, + unsigned int align) +{ + if (align <= crypto_tfm_ctx_alignment()) + align = 1; + + return PTR_ALIGN(crypto_tfm_ctx(tfm), align); +} + static inline void *crypto_tfm_ctx_aligned(struct crypto_tfm *tfm) { - return PTR_ALIGN(crypto_tfm_ctx(tfm), - crypto_tfm_alg_alignmask(tfm) + 1); + return crypto_tfm_ctx_align(tfm, crypto_tfm_alg_alignmask(tfm) + 1); +} + +static inline void *crypto_tfm_ctx_dma(struct crypto_tfm *tfm) +{ + unsigned int align = 1; + +#ifdef ARCH_DMA_MINALIGN + align = ARCH_DMA_MINALIGN; +#endif + + return crypto_tfm_ctx_align(tfm, align); } static inline struct crypto_instance *crypto_tfm_alg_instance( diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 2324ab6f1846b..5d1e961f810ec 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -714,11 +714,6 @@ static inline void crypto_tfm_clear_flags(struct crypto_tfm *tfm, u32 flags) tfm->crt_flags &= ~flags; } -static inline void *crypto_tfm_ctx(struct crypto_tfm *tfm) -{ - return tfm->__crt_ctx; -} - static inline unsigned int crypto_tfm_ctx_alignment(void) { struct crypto_tfm *tfm;