]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: pcrypt - Fix handling of MAY_BACKLOG requests
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 16 Apr 2026 09:00:50 +0000 (17:00 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 16 Apr 2026 09:29:40 +0000 (17:29 +0800)
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>
crypto/pcrypt.c

index c3a9d4f2995c7a4b6b55d5342ff726774d68d79d..ed0feaba2383233d07f01f633cb12eb244a26d30 100644 (file)
@@ -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;