]> asedeno.scripts.mit.edu Git - linux.git/commit
crypto: api - Keep failed instances alive
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 20 Mar 2018 07:52:45 +0000 (15:52 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 30 Mar 2018 17:32:58 +0000 (01:32 +0800)
commiteb02c38f019726ede53eb31c3c604fd77cfedc2e
treea59d515c38ef954c7e86a87054bbf6e7db0ba389
parent3ca1e9948940230bd2c4b17e320bbab3367fc37b
crypto: api - Keep failed instances alive

This patch reverts commit 9c521a200bc3 ("crypto: api - remove
instance when test failed") and fixes the underlying problem
in a different way.

To recap, prior to the reverted commit, an instance that fails
a self-test is kept around.  However, it would satisfy any new
lookups against its name and therefore the system may accumlulate
an unbounded number of failed instances for the same algorithm
name.

The reverted commit fixed it by unregistering the instance.  Hoever,
this still does not prevent the creation of the same failed instance
over and over again each time the name is looked up.

This patch fixes it by keeping the failed instance around, just as
we would if it were a normal algorithm.  However, the lookup code
has been udpated so that we do not attempt to create another
instance as long as this failed one is still registered.  Of course,
you could still force a new creation by deleting the instance from
user-space.

A new error (ELIBBAD) has been commandeered for this purpose and
will be returned when all registered algorithm of a given name
have failed the self-test.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/algapi.c
crypto/api.c