Commit 915b692e authored by Herbert Xu's avatar Herbert Xu
Browse files

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: default avatarYiming Qian <yimingqian591@gmail.com>
Fixes: 5a1436be ("crypto: pcrypt - call the complete function on error")
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 8451ab6a
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;