diff options
| author | Herbert Xu <herbert@gondor.apana.org.au> | 2026-04-16 17:00:50 +0800 |
|---|---|---|
| committer | Herbert Xu <herbert@gondor.apana.org.au> | 2026-04-16 17:29:40 +0800 |
| commit | 915b692e6cb723aac658c25eb82c58fd81235110 (patch) | |
| tree | 5f621fc2d5d85a60abb8fef5d7974d505bb3f43e /crypto | |
| parent | 8451ab6ad686ffdcdf9ddadaa446a79ab48e5590 (diff) | |
| download | linux-next-history-915b692e6cb723aac658c25eb82c58fd81235110.tar.gz | |
crypto: pcrypt - Fix handling of MAY_BACKLOG requests
MAY_BACKLOG requests can return EBUSY. Handle them by checking
for that value and filtering out EINPROGRESS notifications.
Reported-by: Yiming Qian <yimingqian591@gmail.com>
Fixes: 5a1436beec57 ("crypto: pcrypt - call the complete function on error")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
| -rw-r--r-- | crypto/pcrypt.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c index c3a9d4f2995c7..ed0feaba23832 100644 --- a/crypto/pcrypt.c +++ b/crypto/pcrypt.c @@ -69,6 +69,9 @@ static void pcrypt_aead_done(void *data, int err) struct pcrypt_request *preq = aead_request_ctx(req); struct padata_priv *padata = pcrypt_request_padata(preq); + if (err == -EINPROGRESS) + return; + padata->info = err; padata_do_serial(padata); @@ -82,7 +85,7 @@ static void pcrypt_aead_enc(struct padata_priv *padata) ret = crypto_aead_encrypt(req); - if (ret == -EINPROGRESS) + if (ret == -EINPROGRESS || ret == -EBUSY) return; padata->info = ret; @@ -133,7 +136,7 @@ static void pcrypt_aead_dec(struct padata_priv *padata) ret = crypto_aead_decrypt(req); - if (ret == -EINPROGRESS) + if (ret == -EINPROGRESS || ret == -EBUSY) return; padata->info = ret; |
