aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
authorHerbert Xu <herbert@gondor.apana.org.au>2026-04-16 17:00:50 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2026-04-16 17:29:40 +0800
commit915b692e6cb723aac658c25eb82c58fd81235110 (patch)
tree5f621fc2d5d85a60abb8fef5d7974d505bb3f43e /crypto
parent8451ab6ad686ffdcdf9ddadaa446a79ab48e5590 (diff)
downloadlinux-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.c7
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;