Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe3c5206 authored by Herbert Xu's avatar Herbert Xu
Browse files

[CRYPTO] api: Wake up all waiters when larval completes



Right now when a larval matures or when it dies of an error we
only wake up one waiter.  This would cause other waiters to timeout
unnecessarily.  This patch changes it to use complete_all to wake
up all waiters.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 2e290f43
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ void crypto_larval_error(const char *name, u32 type, u32 mask)
	if (alg) {
		if (crypto_is_larval(alg)) {
			struct crypto_larval *larval = (void *)alg;
			complete(&larval->completion);
			complete_all(&larval->completion);
		}
		crypto_mod_put(alg);
	}
@@ -164,7 +164,7 @@ static int __crypto_register_alg(struct crypto_alg *alg,
				continue;

			larval->adult = alg;
			complete(&larval->completion);
			complete_all(&larval->completion);
			continue;
		}

+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ static void crypto_larval_kill(struct crypto_alg *alg)
	down_write(&crypto_alg_sem);
	list_del(&alg->cra_list);
	up_write(&crypto_alg_sem);
	complete(&larval->completion);
	complete_all(&larval->completion);
	crypto_alg_put(alg);
}