From: Ingo Franzki <ifranzki@linux.ibm.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Eric Biggers <ebiggers@kernel.org>,
Harald Freudenberger <freude@linux.ibm.com>,
Holger Dengler <dengler@linux.ibm.com>,
linux-crypto@vger.kernel.org
Subject: Re: [PATCH] crypto: api - Redo lookup on EEXIST
Date: Mon, 19 May 2025 15:47:02 +0200 [thread overview]
Message-ID: <d862f12f-8777-445e-a2d2-36484bd0e199@linux.ibm.com> (raw)
In-Reply-To: <aCsIEqVwrhj4UnTq@gondor.apana.org.au>
On 19.05.2025 12:29, Herbert Xu wrote:
> On Mon, May 19, 2025 at 10:09:10AM +0200, Ingo Franzki wrote:
>>
>> During this weekend's CI run, we got the following:
>>
>> alg: aead: error allocating gcm_base(ctr(aes-generic),ghash-generic) (generic impl of gcm(aes)): -17
>> alg: self-tests for gcm(aes) using gcm-aes-s390 failed (rc=-17)
>>
>> Last week, we had a similar failure:
>>
>> aes_s390: Allocating AES fallback algorithm ctr(aes) failed
>> alg: skcipher: failed to allocate transform for ctr-aes-s390: -17
>> alg: self-tests for ctr(aes) using ctr-aes-s390 failed (rc=-17)
>
> Please try this patch:
Since I can't reproduce the problem at will, I can't tell if your patch solves the problem. From what I can tell it looks reasonable.
Nevertheless, I have added your patch to be applied on top of the next day's next kernel tree in our CI so that it runs with your patch for a while.
Lets run it for a few days and see if the error still shows up or not.
>
> ---8<---
> When two crypto algorithm lookups occur at the same time with
> different names for the same algorithm, e.g., ctr(aes-generic)
> and ctr(aes), they will both be instantiated. However, only one
> of them can be registered. The second instantiation will fail
> with EEXIST.
>
> Avoid failing the second lookup by making it retry, but only once
> because there are tricky names such as gcm_base(ctr(aes),ghash)
> that will always fail, despite triggering instantiation and EEXIST.
>
> Reported-by: Ingo Franzki <ifranzki@linux.ibm.com>
> Fixes: 2825982d9d66 ("[CRYPTO] api: Added event notification")
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
>
> diff --git a/crypto/api.c b/crypto/api.c
> index 133d9b626922..5724d62e9d07 100644
> --- a/crypto/api.c
> +++ b/crypto/api.c
> @@ -219,10 +219,19 @@ static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg,
> if (crypto_is_test_larval(larval))
> crypto_larval_kill(larval);
> alg = ERR_PTR(-ETIMEDOUT);
> - } else if (!alg) {
> + } else if (!alg || PTR_ERR(alg) == -EEXIST) {
> + int err = alg ? -EEXIST : -EAGAIN;
> +
> + /*
> + * EEXIST is expected because two probes can be scheduled
> + * at the same time with one using alg_name and the other
> + * using driver_name. Do a re-lookup but do not retry in
> + * case we hit a quirk like gcm_base(ctr(aes),...) which
> + * will never match.
> + */
> alg = &larval->alg;
> alg = crypto_alg_lookup(alg->cra_name, type, mask) ?:
> - ERR_PTR(-EAGAIN);
> + ERR_PTR(err);
> } else if (IS_ERR(alg))
> ;
> else if (crypto_is_test_larval(larval) &&
--
Ingo Franzki
eMail: ifranzki@linux.ibm.com
Tel: ++49 (0)7031-16-4648
Linux on IBM Z Development, Schoenaicher Str. 220, 71032 Boeblingen, Germany
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Gregor Pillen
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
IBM DATA Privacy Statement: https://www.ibm.com/privacy/us/en/
next prev parent reply other threads:[~2025-05-19 13:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-19 8:09 Sporadic errors with alg selftest on next kernel Ingo Franzki
2025-05-19 8:28 ` Herbert Xu
2025-05-19 8:34 ` Herbert Xu
2025-05-19 8:43 ` Ingo Franzki
2025-05-19 9:34 ` Herbert Xu
2025-05-19 10:29 ` [PATCH] crypto: api - Redo lookup on EEXIST Herbert Xu
2025-05-19 13:47 ` Ingo Franzki [this message]
2025-05-26 6:44 ` Ingo Franzki
2025-05-26 8:13 ` Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d862f12f-8777-445e-a2d2-36484bd0e199@linux.ibm.com \
--to=ifranzki@linux.ibm.com \
--cc=dengler@linux.ibm.com \
--cc=ebiggers@kernel.org \
--cc=freude@linux.ibm.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox