Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp702744pxx; Wed, 28 Oct 2020 15:00:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwKvRFB2+0AqoiH8GEIdltEsKGldmGHIiR3sv1UY9urSihXLG8t3PUppzG7ebZHeppVzImH X-Received: by 2002:a05:6402:1c04:: with SMTP id ck4mr1054127edb.274.1603922437272; Wed, 28 Oct 2020 15:00:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603922437; cv=none; d=google.com; s=arc-20160816; b=Q6mQvmgjQeAmjOrmzfxBP+e2wpfF+HIGz5GF4e1h/L5+mf3hQMaPOGuZJ0UAV730lK a4MQGQ5bW9l6q21e/D75rhu9KGrJIlkuIyrOT95RSWAPL7aPkjkV9pYhaG3bzAdG/wcq ozsVFIlH9mMRx9du0ct9fKMAWcoV5bSg7Za8ePaFDrP7sDCX96TyNr8g2DVjZ2/eflAc se1s8KGJaP5zCWfKov5vDo5cfXqpv/eal16mZNFJvkcHQb1886nONXkanxSq/ndE5beW ti8W2Gq5bC8kfd2hL+gQr/UNWjg/Pru7VYGao3jdHZ0wrsHj2TTlQChM6A84zi794SCB SyVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=bEA/Q6PCT5knz3n0iSzFLBT1PJCcGb16u3VbX63GTy0=; b=WZKyXLPRaN3cUB1rP/GCGhcrN6WcAjD+omBzTdTnkyKViX92leknUIxrGm050zMolS uj+u6SYWG1vLmDsBokFKTEtk1M0yV6at0jMYRWjIHYBdua+DBDW6si8D6g6jObLqaIzS 8gBjIwYDCv78b5wBBESUWoyHB1B05u+C75Ho4lBDE5gNgqPNJ5w7DTSH5zgz6bajyyL+ aNtZDIkuCbqKxxjX19kH6klKe3ED5mnRr2zhWu+zo85r+rqoHhUPBHPKLW5Py2mJ7Fwp VBYc6JZ2LvPQc18q4/G2jI9KApfy2LliXJ8HOIvVf3PnDyr58xYyLsoFBltU1VXiFu7f gfPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id ar16si464464ejc.405.2020.10.28.15.00.13; Wed, 28 Oct 2020 15:00:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 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 S1729328AbgJ1V7c (ORCPT + 99 others); Wed, 28 Oct 2020 17:59:32 -0400 Received: from inva020.nxp.com ([92.121.34.13]:39076 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729318AbgJ1V7b (ORCPT ); Wed, 28 Oct 2020 17:59:31 -0400 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id B32D61A14E2; Wed, 28 Oct 2020 10:03:44 +0100 (CET) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id A55851A14F4; Wed, 28 Oct 2020 10:03:44 +0100 (CET) Received: from fsr-ub1864-014.ea.freescale.net (fsr-ub1864-014.ea.freescale.net [10.171.95.219]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id 4D4C92030E; Wed, 28 Oct 2020 10:03:44 +0100 (CET) From: =?UTF-8?q?Horia=20Geant=C4=83?= To: Herbert Xu , "David S. Miller" Cc: Russell King , Ard Biesheuvel , linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, NXP Linux Team , linux-kernel@vger.kernel.org Subject: [PATCH] crypto: arm/aes-neonbs - fix usage of cbc(aes) fallback Date: Wed, 28 Oct 2020 11:03:20 +0200 Message-Id: <20201028090320.4222-1-horia.geanta@nxp.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Loading the module deadlocks since: -local cbc(aes) implementation needs a fallback and -crypto API tries to find one but the request_module() resolves back to the same module Fix this by changing the module alias for cbc(aes) and using the NEED_FALLBACK flag when requesting for a fallback algorithm. Fixes: 00b99ad2bac2 ("crypto: arm/aes-neonbs - Use generic cbc encryption path") Signed-off-by: Horia Geantă --- arch/arm/crypto/aes-neonbs-glue.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/arm/crypto/aes-neonbs-glue.c b/arch/arm/crypto/aes-neonbs-glue.c index bda8bf17631e..f70af1d0514b 100644 --- a/arch/arm/crypto/aes-neonbs-glue.c +++ b/arch/arm/crypto/aes-neonbs-glue.c @@ -19,7 +19,7 @@ MODULE_AUTHOR("Ard Biesheuvel "); MODULE_LICENSE("GPL v2"); MODULE_ALIAS_CRYPTO("ecb(aes)"); -MODULE_ALIAS_CRYPTO("cbc(aes)"); +MODULE_ALIAS_CRYPTO("cbc(aes)-all"); MODULE_ALIAS_CRYPTO("ctr(aes)"); MODULE_ALIAS_CRYPTO("xts(aes)"); @@ -191,7 +191,8 @@ static int cbc_init(struct crypto_skcipher *tfm) struct aesbs_cbc_ctx *ctx = crypto_skcipher_ctx(tfm); unsigned int reqsize; - ctx->enc_tfm = crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC); + ctx->enc_tfm = crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC | + CRYPTO_ALG_NEED_FALLBACK); if (IS_ERR(ctx->enc_tfm)) return PTR_ERR(ctx->enc_tfm); @@ -441,7 +442,8 @@ static struct skcipher_alg aes_algs[] = { { .base.cra_blocksize = AES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct aesbs_cbc_ctx), .base.cra_module = THIS_MODULE, - .base.cra_flags = CRYPTO_ALG_INTERNAL, + .base.cra_flags = CRYPTO_ALG_INTERNAL | + CRYPTO_ALG_NEED_FALLBACK, .min_keysize = AES_MIN_KEY_SIZE, .max_keysize = AES_MAX_KEY_SIZE, -- 2.17.1